Java(输入长度​​)

时间:2016-03-14 17:26:17

标签: java

所以我想得到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.你能告诉我如何获得输入的全长吗?提前致谢

3 个答案:

答案 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”