Java 如何使用不同的类进行播放器输入验证
Game.javaJava 如何使用不同的类进行播放器输入验证,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
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()
中,以获得更好的理解能力
你可以相应地调整它。啊,是的,这正是我想要的。非常感谢,先生:)