[英]StringTokenizer questions
我在String标记生成器中遇到一些问题,例如如果我遵循以下代码,那么我想知道一些问题。
代码 :
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())
那么如何使用StringTokenizer
? st.nextToken
,我应该使用什么? StringTokenizer是一个遗留类,出于兼容性原因而保留
首先,如果没有那些hasMoreTokens()
和next()
方法,则无法使用该类。
您不能对其进行循环,因为hasMoreElements()
返回与hasMoreTokens
方法相同的值。 nextElement()
返回与nextToken
方法相同的值,并且您不想使用它们。
其他明智的hasMoreElements
和nextElement
是替代方案。
尽管在新代码中不鼓励使用它。 建议任何寻求此功能的人改用String的split方法或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]);
如果您不想使用while
和nextToken
,请进行字符串拆分。 这条路:
String s ="this is him";
String[] s2 = s.split(" ");
for (String str : s2) {
System.out.println(str);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.