【发布时间】:2013-12-10 00:41:15
【问题描述】:
我想使用 java.util.Scanner() 从控制台读取全名并将该值分配给字符串。
例如;
在控制台中输入“John Smith”。点击返回和 字符串 s = "约翰·史密斯";
我尝试编写一个 readString 方法来执行此操作,但它的循环被锁定。有谁知道解决方案吗?
我的部分代码。
System.out.println("Name: ");
String name = readString();
还有我的破方法。
private String readString()
{
String s ="";
while(scanner.hasNext())
s += scanner.next();
return s;
}
【问题讨论】:
-
以为你打错了,但应该是
scanner.hasNext() -
打错了,否则他的程序将无法编译。
-
那不应该永远循环。你确定是
readString()卡住了吗?请向我们展示更多代码。 -
我在一行输入“John Smith”。点击输入光标跳到下一行并继续读取输入,扫描仪永远不会退出。
-
标记为重复,但解决方案似乎有所不同。扫描仪对象在代码的前面用于首先读取一些整数。后来我尝试使用相同的扫描仪 .nextLine 方法来读取名称。我第一次调用 .nextLine 时,它以空字符串的形式返回。仍然不确定为什么,但使用新的扫描仪实例已经解决了这个问题。因此,在这种情况下,“重复”解决方案将不起作用。