所以我想得到java中输入的长度,但是(String.length())并没有产生令人满意的结果。 所以当我输入这段代码时:
// Engine 1
std::default_random_engine engine1;
doSomeWork(engine1);
// Engine 2
std::default_random_engine engine2(145457);
doSomeWork(engine2);
// Engine 3
std::linear_congruential_engine<unsigned int, 1, 1, 10> engine3;
doSomeWork(engine3);
// My Engine
MyEngine myEngine;
doSomeWork(myEngine);
我得到8是正确的 但是当我输入这段代码时:
String c = "hi hello";
System.out.print(c.length());
对于&#34;你好&#34;是输入,我得到2而不是8.我再次尝试使用不同的输入,我发现string.length()在输入中有空格问题。例如,如果输入是&#34; 123456 78&#34;输出将是6而不是9.你能告诉我如何获得输入的全长吗?提前致谢
答案 0 :(得分:3)
将s.next()
替换为s.nextLine()
,您将获得所需的结果。
next()
查找并返回此扫描程序中的下一个完整令牌。完整的标记之前和之后是与分隔符模式匹配的输入。
nextLine()
返回当前行的其余部分,不包括末尾的任何行分隔符。该位置设置为下一行的开头。
-> "123456 78"
s.next().length() -> "123456".length() -> 6
s.nextLine().length() -> "123456 78".length() -> 9
答案 1 :(得分:3)
使用nextLine()而不是next()作为next()只能读取输入直到空格。
nextLine()读取输入,包括单词之间的空格(也就是说,它读到行尾\ n \ n)
cmd.exe
答案 2 :(得分:1)
java.util.Scanner.next()方法查找并返回下一个 来自此扫描仪的完整令牌。一个完整的令牌前面和 后跟与分隔符模式匹配的输入。
这里的分隔符是“”。
长度为2,因为它表示“hi”的长度为2.如果你 想要完整字符串的长度使用nextLine()它计为“\ n”