我写了一个方法,要求用户输入一个名字,但我不希望它等于compName
,我不希望用户的输入为空。我有humanName.equals("")
,但这只会确保名称不是“”。它仍然可以是一个或多个空格。我需要在那里至少有一个角色。我无法弄清楚如何去做这件事。
public String getHumanName(String compName){
System.out.println("Enter a name for the human player: ");
String humanName = scan.nextLine();
while(humanName.equals(compName) || humanName.equals("")){
System.out.println("The human player cannot have the same name as the computer player or be blank. Enter a new name for the human player: ");
humanName = scan.nextLine();
}
return humanName;
}
答案 0 :(得分:3)
使用trim()
消除字符串开头或结尾的额外空格。
while(humanName.equals(compName) || humanName.trim().equals("")){
答案 1 :(得分:2)
您可以使用String#trim
和equals
的组合。
while (humanName.equals(compName) || humanName == null || "".equals(humanName.trim()))
答案 2 :(得分:0)
您可以在Java中使用字符串的trim()方法来删除导致String的尾随空格。
public String getHumanName(String compName){
System.out.println("Enter a name for the human player: ");
String humanName = scan.nextLine();
humanName = humanName.trim();
while(humanName.equals(compName) || humanName.equals("")){
System.out.println("The human player cannot have the same name as the computer player or be blank. Enter a new name for the human player: ");
humanName = scan.nextLine();
humanName = humanName.trim();
}
return humanName;
}
答案 3 :(得分:0)
有不同的方法来管理它。
trim()
输入空白将被删除,您只需要查看EMPTY
@NotBlank
一起使用 - 适用于java SE和EE。