我尝试为字符串创建一个Scanner方法,只有当用户输入的值不是空白时才返回该值(空格,用户点击'立即输入等等。)。如果用户这样做,我想打印出一条错误消息并让循环再次返回到开头并等待新的用户输入。如果正确,我希望方法返回正确的输入值。
我的代码是这样的:
private static final Scanner scr = new Scanner(System.in);
private static String readString(){
while(true){
String command = scr.next();
if(command != null && !command.trim().isEmpty()){
return command;
}
System.out.println("You have to type something");
}
}

现在当我在其他方法中运行此方法时,如果我留空或只是点击'输入'我的输出只留下一个空格,直到我输入一个字符串,例如' abc'。然后它返回该值。
感谢任何有用的建议!
答案 0 :(得分:2)
将src.next()
替换为src.nextLine()
private static final Scanner scr = new Scanner(System.in);
public static void main(String[] args) {
System.out.println(readString());
}
private static String readString() {
while (true) {
String command = scr.nextLine();
if (command != null && !command.trim().isEmpty()) {
return command;
}
System.out.println("You have to type something");
}
}