Java:令牌生成器在下一个令牌之后获取令牌

时间:2018-08-14 22:09:07

标签: java string token stringtokenizer

是否有更好的方法在token之后获得next token

这就是我现在的做法:

StringTokenizer inputTokens2 = new StringTokenizer(input);
while (inputTokens2.hasMoreTokens()){
    StringTokenizer nextToken = new Stringtokenizer(inputTokens2.nextToken());
}

我要实现的是获取用户输入的数字,并用空格“”分隔,并确定其有效电话号码。但是,如果数字包含例如“ ... 20 5 ...”,那么我必须检查数字“ ... 25 ....”或“ ... 205 ....”的两个版本。这就是为什么我要在下一个之后使用Token。如果下一个Token以“ 0”结尾,而其后的token为个位数,则有2个版本。

2 个答案:

答案 0 :(得分:0)

不鼓励使用

StringTokenizer。 Java具有“字符串” .split(“ \ s”),建议使用。

 String[] result = input.split("\\s");
 for (int x=0; x<result.length; x++)
     System.out.println(result[x]);

您可以在oracle网站的官方文档中进行检查。

答案 1 :(得分:0)

要找出以空格分隔的值,与.split( regex )相比,StringTokenizer具有很高的运行时效率。

主要由StringTokenizer提供以空格分隔的值的字符串,并且可以按以下方式使用:

 StringTokenizer st = new StringTokenizer(input);
 while( st.hasMoreTokens() ) System.out.println( st.nextToken() );

尽管Java8文档建议在Tokenizer上使用.split(),但在此处可以了解更多信息:https://docs.oracle.com/javase/8/docs/api/java/util/StringTokenizer.html