【发布时间】:2016-08-20 17:50:07
【问题描述】:
我做了一个简单的程序,允许用户输入一个名字,然后打招呼。
import java.util.Scanner;
public class nameinput {
public static void main(String args[]){
Scanner sc = new Scanner(System.in);
System.out.println("Enter a name: (only letters, at least 2 characters long)");
while (true) {
String name= sc.next();
if (name.length() < 2){
System.out.println("This name is too short!");
continue;
}
else if (!name.matches("[a-zA-Z]+")){
System.out.println("Letters only!");
continue;
}
else {
System.out.println("Hello, " + name);
break;
}
}
}
}
但是我有两个问题我无法解决:
- 当用户输入包含空格的名称时,它只获取空格之前的内容。
- 当用户只传递一系列空格或不传递任何内容时,什么都不会发生,就像他没有输入任何内容一样。我希望用户收到一条正确的消息,通知他不允许使用仅限空格的字符串和空字符串。
希望我对问题的描述很清楚,在此先感谢您的帮助!
【问题讨论】:
-
Scanner有分隔符吗?默认是什么? -
您需要使用 nextLine() 来获取包含空格(超过 1 个单词)的扫描仪输入 //String name= sc.nextLine();
标签: java string java.util.scanner