我试图阻止用户输入空格或没有值。 但没有任何作用。即使没有输入值,程序也可以进一步打印我的错误。我究竟做错了什么? 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 {...
答案 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语句。