Java 无法获取变量中的字数
我可以成功计算短语中的字数,如:Java 无法获取变量中的字数,java,Java,我可以成功计算短语中的字数,如: int numWords = "I am testing".split(" ").length; (返回3。) 然而,我得到一个用户输入并将其存储在一个字符串中,然后尝试计算其中的字数,但无论发生什么情况,它总是返回1 我使用stringVariable=scanner.next()获取用户输入和使用 int numWords = stringVariable.split(" ").length; 获取字数。假设我输入“我正在测试”。它将返回1。为什么会这样
int numWords = "I am testing".split(" ").length;
(返回3。)
然而,我得到一个用户输入并将其存储在一个字符串中,然后尝试计算其中的字数,但无论发生什么情况,它总是返回1
我使用stringVariable=scanner.next()获取用户输入代码>和使用
int numWords = stringVariable.split(" ").length;
获取字数。假设我输入“我正在测试”。它将返回1。为什么会这样?下一步()
查找并返回此扫描程序中的下一个完整令牌。A.
完整标记的前面和后面是与
分隔符模式。此方法在等待输入时可能会阻塞
扫描,即使上一次调用hasNext()返回true
默认分隔符是空白,因此您只能读取第一个单词。因此,它将永远只是一个词。尝试使用hasNext()读取循环中的所有用户输入(使用某种类型的终止条件),或使用nextLine()读取整行内容。next():
查找并返回此扫描程序中的下一个完整令牌。A.
完整标记的前面和后面是与
分隔符模式。此方法在等待输入时可能会阻塞
扫描,即使上一次调用hasNext()返回true
默认分隔符是空白,因此您只能读取第一个单词。因此,它将永远只是一个词。尝试使用hasNext()读取循环中的所有用户输入(使用某种类型的终止条件),或者使用nextLine()读取整行的值。我相信next()会在空白处停止,因此它只能得到“I”。尝试使用scanner.nextLine()。我相信next()会在空白处停止,所以它只能得到“I”。尝试使用scanner.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);
}
输出:
我
1
我正在测试
3
因为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);
}
输出:
我
1
我正在测试
3
这将始终返回一,因为next()在到达空白处时停止。使用其中一个
它会帮助你的
scanner.nextLine()
or
scanner.hasNext();
在循环中读取所有标记
这将始终返回一,因为next()在到达空白处时停止。使用其中一个
它会帮助你的
scanner.nextLine()
or
scanner.hasNext();
在循环中读取所有标记