Я хочу, независимо от того, что пользователь вводит, если первая буква их ввода является либо "y", либо "n", независимо от случая, она будет печатать "начало игры".
Я пробовал equalsIgnoreCase() с переменной "letter", но он дает ошибку: 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");
}
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");
}
Попробуйте использовать 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' )
Просто проверьте оба варианта:
if( letter == 'y' || letter == 'Y' || letter == 'p' || letter == 'P' )
Вы можете предварительно создать набор допустимых символов.
Set<Character> yes = new HashSet<>(Arrays.asList('y','Y','p','P'));
public void test() {
char letter = 'c';
if ( yes.contains(letter)) {
}
}
'p'
или'n'
?y
иp
. Кстати, почему бы просто не проверитьY
,N
,y
иN
?