Java 如何使用不同的类进行播放器输入验证

Java 如何使用不同的类进行播放器输入验证,java,validation,Java,Validation,Game.java public void getLetter() { System.out.print("Give a letter: "); guessedLetter = ((PlayerHuman) player1).letterGuessing(); } } PlayerHuman.java public char letterGuessing() { inputString = scanner.nextLine(); if(inp

Game.java

public void getLetter() {
    System.out.print("Give a letter: ");
    guessedLetter = ((PlayerHuman) player1).letterGuessing();   
    }   
}
PlayerHuman.java

public char letterGuessing() {
    inputString = scanner.nextLine();
    if(inputString.isEmpty()) {
        //need code here, also check if its only a-z
    }
    inputChar = inputString.toUpperCase().charAt(0);
    return inputChar;
}
我有这个密码。在
getLetter()
中,它请求一个字母,然后调用
lettergussing()
方法。在
letterGuessing()
方法中,在返回字母之前,需要检查输入是否为空,以及字母表中是否只有一个字母

如果它是空的或不是字母,则需要再次执行整个
getLetter()
方法。比如用那个系统要一封新信


我应该怎么做?

您可以使用以下逻辑:

public char letterGuessing() {
    String inputString;
    while (true) {
        System.out.print("Give a letter: ");
        inputString = scanner.nextLine();
        if (inputString != null && inputString.length() > 0 && Character.isLetter(inputString.charAt(0))) {
            break;
        }
    }

    return inputString.toUpperCase().charAt(0);
}
在这里,
while循环
不会中断,除非提供的
inputString
是一个字母。在
if
中有额外的检查,以避免任何
NPE

此外,我还移动了行
System.out.print(“给一封信”)编码到方法
letterGuessing()
中,以获得更好的理解能力


你可以相应地调整它。

啊,是的,这正是我想要的。非常感谢,先生:)