如何防止Java扫描程序输入空格

时间:2017-08-30 14:22:30

标签: java java.util.scanner

我试图阻止用户输入空格或没有值。 但没有任何作用。即使没有输入值,程序也可以进一步打印我的错误。我究竟做错了什么? my code example

Scanner nameScan = new Scanner(System.in);
System.out.print("Input your name: ");

String newcomer = nameScan.nextLine();                 
player.setName(newcomer);
String userName = player.getName();
userName = userName.trim();


if (userName.length()==0) {
     System.out.println(" ");
     System.out.println("You have to set up a player name first... ");
     System.out.println(" ");                               
}
else {...

2 个答案:

答案 0 :(得分:0)

正如@ 11thdimension所说,你必须验证输入。

您可以执行以下操作:

if (newcomer.isEmpty()) {
    System.out.println("Please write something");
}

或者您可以执行while循环并继续要求输入正确。

答案 1 :(得分:0)

您的代码

if(username.length() == 0)

不会检查用户名是否包含空格,因为空格是按字符串的长度计算的。

要检查空字符串输入(可能包含空格),您可以执行以下操作:

if("".equals(username.replaceAll("\\s+","")))   //or

if("".equals(username.trim())                   //or

if(username.isEmpty())                   

此外,您还希望使用do-while循环进行验证,而不是使用if语句。