我可以成功计算短语中的单词数量,如:
int numWords = "I am testing".split(" ").length;
Run Code Online (Sandbox Code Playgroud)
(它返回3.)
但是,我得到一个用户输入并将其存储在一个字符串中,然后尝试计算其中的单词数,但它总是返回1,无论如何.
我正在stringVariable = scanner.next();使用和使用用户输入
int numWords = stringVariable.split(" ").length;
Run Code Online (Sandbox Code Playgroud)
获得单词数量.假设我输入"我正在测试".它会返回1.这是为什么?
AHu*_*ist 10
下一个():
查找并返回此扫描程序中的下一个完整令牌.在完成令牌之前和之后是与分隔符模式匹配的输入.即使之前的hasNext()调用返回true,此方法也可能在等待输入扫描时阻塞.
默认分隔符是空格,因此您只读取第一个单词.因此,它只会是一个字.尝试使用hasNext()(具有某种类型的终止条件)读取循环中的所有用户输入,或使用nextLine()读取整行的值.
因为scanner.next()在空白上进行标记.
scanner.nextLine() 另一方面,你会做你想要的.
public static void main(String[] args) {
String input = "I am testing";
Scanner s = new Scanner(input);
String stringVariable = s.next();
System.out.println(stringVariable);
int numWords = stringVariable.split(" ").length;
System.out.println(numWords);
s = new Scanner(input);
stringVariable = s.nextLine();
System.out.println(stringVariable);
numWords = stringVariable.split(" ").length;
System.out.println(numWords);
}
Run Code Online (Sandbox Code Playgroud)
输出:
我
1
我正在测试
3
| 归档时间: |
|
| 查看次数: |
88 次 |
| 最近记录: |