Java - charAt (), equalsIgnoreCase, если оператор проверяет?

1

Я хочу, независимо от того, что пользователь вводит, если первая буква их ввода является либо "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");
 }
  • 1
    Это должен быть 'p' или 'n' ?
  • 2
    Ваш код проверяет y и p . Кстати, почему бы просто не проверить Y , N , y и N ?
Теги:
if-statement
input
equals
charat

4 ответа

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");
}
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' )
2

Просто проверьте оба варианта:

if( letter == 'y' || letter == 'Y' || letter == 'p' || letter == 'P' )
0

Вы можете предварительно создать набор допустимых символов.

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

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

    }
}
  • 1
    Я думаю, немного подумав, мы можем найти еще более ресурсоемкое решение ...
  • 0
    @Holger - Работаем над этим ... :)
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню