【发布时间】:2016-07-22 17:31:18
【问题描述】:
在我们开始之前,我不认为这是一个重复的问题。我已经阅读了题为StringTokenzer countTokens() returns 1 with any string 的问题,但这并没有解决正确分隔的字符串被正确计数的事实,但正确分隔的输入却不是。
在使用 StringTokenizer 类时,我发现 countTokens 方法根据 countTokens 中的参数是定义的字符串还是用户定义的字符串返回不同的结果。例如,以下代码打印值 4。
String phrase = "Alpha bRaVo Charlie delta";
StringTokenizer token = new StringTokenizer(phrase);
//There's no need to specify the delimiter in the parameters, but I've tried
//both code examples with " " as the delimiter with identical results
int count = token.countTokens();
System.out.println(count);
但是当用户输入时这段代码会打印值1:Alpha bRaVo Charlie delta
Scanner in = new Scanner(System.in);
String phrase;
System.out.print("Enter a phrase: ");
phrase = in.next();
StringTokenizer token = new StringTokenizer(phrase);
int count = token.countTokens();
System.out.println(count);
【问题讨论】:
-
把这个扔出去(来自docs):“StringTokenizer 是一个遗留类,出于兼容性原因保留,尽管不鼓励在新代码中使用它”。可能想考虑使用
String#split(String) -
感谢您的输入,但我需要将 StringTokenizer 类用于类分配。
标签: java input token delimiter stringtokenizer