1

我想要的是无论用户输入什么,如果他们输入的第一个字母是'y'或'n',无论大小写,它都会打印“游戏开始”。

我用“字母”变量尝试了equalsIgnoreCase(),但它给出了错误:无法取消引用char。对此的任何建议将不胜感激!谢谢!

Scanner input = new Scanner(System.in);

System.out.println("Do you want to continue?");

String wesker = input.nextLine();
char letter = wesker.charAt(0);

 if(letter == 'y' || letter == 'p'){
     System.out.println("Game start");
 } else {
     System.out.println("Game over");
 }
4

4 回答 4

3

尝试使用Character#toLowercase()

if (Character.toLowerCase(letter) == 'y' || Character.toLowerCase(letter) == 'n') {

或者

if (Character.toUpperCase(letter) == 'Y' || Character.toUpperCase(letter) == 'N') {

或者干脆

if( letter == 'y' || letter == 'Y' || letter == 'n' || letter == 'N' )
于 2015-01-23T17:24:50.897 回答
2

只需检查两种情况:

if( letter == 'y' || letter == 'Y' || letter == 'p' || letter == 'P' )
于 2015-01-23T17:22:15.713 回答
0

您可以预先构建一组可接受的字符。

Set<Character> yes = new HashSet<>(Arrays.asList('y','Y','p','P'));

public void test() {
    char letter = 'c';
    if ( yes.contains(letter)) {

    }
}
于 2015-01-23T17:26:15.877 回答
0

equalsIgnoreCase 只能由字符串使用。对于您的情况,如果您想使用该方法,您可以这样做:

Scanner input = new Scanner(System.in);
String wesker = input.nextLine();
String letter = wesker.substring(0,1);

if(letter.equalsIgnoreCase("y") || letter.equalsIgnoreCase("n")){
    System.out.println("Game start");
} else {
    System.out.println("Game over");
}
于 2015-01-23T22:27:08.680 回答