【发布时间】:2017-09-06 08:05:21
【问题描述】:
我的初始代码没有产生预期的结果:
import java.util.Scanner;
class Strings {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Enter your word: ");
String word1 = sc.next();
System.out.println(word1.length());
sc.close();
}
}
输出:
tk@localhost:~$ java Strings
Enter your word:
avada kedavra
5
这不是我的字符串的长度。 但是当我尝试这个(没有用户输入)时:
class Strings {
public static void main(String[] args) {
String str = new String("avada kedavra");
System.out.println(str.length());
}
}
输出:
tk@localhost:~$ java Strings
13
有效! 那么,为什么当我从用户那里获取输入时它不起作用?我错过了什么?
【问题讨论】:
-
下一个词是avada。
-
使用
sc.nextLine() -
谢谢。成功了!
-
java 扫描器的
next()方法有空格作为分隔符。这意味着只要找到一个,您正在阅读的字符串就会在那里结束。按照 Eran 的说法,如果所有内容都在一行中,请使用nextLine()(请注意,如果有新行,您必须使用nextLine()与您拥有的行一样多次,否则您将遇到同样的问题) -
仅作记录:尽管您的问题已作为 dup 关闭 - 不要忘记在某个时候接受其中一个答案。我发现你的问题写得很好,而且“足够好”可以留下来。
标签: java string java.util.scanner