我在字符串令牌程序中面临一些问题,比如,如果我遵循代码,那么有一些问题我想知道。
码
public class Str_Tokenizer {
public static void main(String args[]){
StringTokenizer st=new StringTokenizer("this is him");
while(st.hasMoreTokens()) {
System.out.println(st.nextToken());
}
}
}问题:
while(st.hasMoreTokens()),那么我如何使用StringTokenizerst.nextToken,我应该使用什么?发布于 2013-10-17 07:39:33
StringTokenizer是由于兼容性原因而保留的遗留类。
首先,没有那些hasMoreTokens()和next()方法,就不能使用该类。
您不能循环它作为替代,因为hasMoreElements()返回与hasMoreTokens方法相同的值。nextElement()返回与nextToken方法相同的值,您不想使用它们。
其他明智的hasMoreElements 和 nextElement 是可供选择的。
尽管它的使用是,但在新代码中不鼓励。建议任何寻求此功能的人使用String的拆分方法或java.util.regex包。
甚至StringTokenizer博士给出了如何避免使用它的示例
下面的示例说明如何使用String.split方法将字符串拆分为其基本标记:
String[] result = "this is a test".split("\\s");
for (int x=0; x<result.length; x++)
System.out.println(result[x]);发布于 2013-10-17 08:03:35
如果不想使用while和nextToken,请选择字符串拆分。这条路:
String s ="this is him";
String[] s2 = s.split(" ");
for (String str : s2) {
System.out.println(str);
}https://stackoverflow.com/questions/19420751
复制相似问题