验证名称不为空

时间:2018-04-09 13:13:24

标签: java

我写了一个方法,要求用户输入一个名字,但我不希望它等于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;
}

4 个答案:

答案 0 :(得分:3)

使用trim()消除字符串开头或结尾的额外空格。

while(humanName.equals(compName) || humanName.trim().equals("")){

答案 1 :(得分:2)

您可以使用String#trimequals的组合。

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
  • 将hibernate验证器与@NotBlank一起使用 - 适用于java SE和EE。