«ДА» или «да» принимает значение «ИСТИНА», а «следовать» принимает значение «ЛОЖЬ»

Спросите пользователя, хочет ли он продолжить игру, возьмите первую букву ответа, и если это «s» или «S», то логическое значение дает «ИСТИНА», но по какой-то причине, вместо того, чтобы написать «ДА», или если тип "follow" возвращает FALSE и завершает работу. Идея в том, что даже если вы ответите что-то пробелами, просто возьмите первую букву.

Идея состоит в том, чтобы разрешить: ДА, да, следовать, следовать, s (любое слово, начинающееся с буквы «S» или «s»).

System.out.println("¿Volver a jugar?(si/no): ");
volverjugar = teclado.nextLine();
String primera=volverjugar.substring(0, 1);
boolean seguir;
seguir = (primera == "s" || primera == "S");
System.out.println(seguir);
8
задан 28.11.2019, 14:14
3 ответа

В Java ты должен использовать equals, чтобы сравнивать, если контент из двух цепей равны. Оператор == sГіlo serГЎ истинный если объектов равны, или же, если они указывают на ту же ссылку.

Таким образом, ты cГіdigo deberГ, - чтобы функционировать:

seguir = ( primera.equals("s") || primera.equals("S") );

Как он говорит @JackNavaRow, ты можешь делать одну comparaciГіn Гєnica конвертируя информацию в mayГєscula.

Или, если ты хочешь упростить, ввиду того, что sГіlo тебе интересно сравнивать первую букву, ты можешь использовать charAt() сочетаясь с Character.toUpperCase, в этом cado, sГ - ты должен использовать ==, потому что serГ - в одну comparaciГіn примитивных типов (atenciГіn aquГ - в использование простых кавычек для 'S':

System.out.println("¿Volver a jugar?(si/no): ");
volverjugar = teclado.nextLine();
boolean seguir = Character.toUpperCase(volverjugar.charAt(0))=='S' ;
System.out.println(seguir);

Или, поскольку он сказал @x3k_js, ты можешь прибегать к equalsIgnoreCase. В этом примере, мы используем charAt, чтобы получать sГіlo первого carГЎcter, это обращаем в String, чтобы потом мочь делать одну comparaciГіn основанная на equalsIgnoreCase:

volverjugar = teclado.nextLine();
String primera = String.valueOf(volverjugar.charAt(0));
boolean seguir=(primera.equalsIgnoreCase("S"));
System.out.println(seguir);
10
ответ дан 01.12.2019, 10:40
  • 1
    спасибо, но он дает мне в этой третьей линии charAt " char cannot be converted to String". ¿ Чар должен быть первым? – alderson 28.11.2019, 14:33
  • 2
    @alderson ты можешь объявлять ее типа Character и funcionará. Проверь có я говорю изданный. – A. Cedano 28.11.2019, 14:44
 System.out.println("¿Volver a jugar? (si/no)");
 String volverjugar = teclado.nextLine(); 

 boolean seguir = false;
 if(volverjugar.startsWith("S") || volverjugar.startsWith("s") ){ 
   seguir = true;
 }
4
ответ дан 01.12.2019, 10:40
  • 1
    идея состоит в том, чтобы позволять: ДА, если, оставаться, Оставаться, s (любое слово, которое начиналось бы из-за буквы " S" или " s"). – alderson 28.11.2019, 14:14
  • 2
    Уже это у тебя есть, только ты нуждаешься в том, чтобы знать, содержит ли он ее " s" или она " S" – EduBw 28.11.2019, 14:19
  • 3
    С contains ты подтверждаешь, что слово содержало цепь, и это не то, что OP хочет, в любом случае deberí схвати использования volverjugar.startsWith("S"), чтобы подтверждать, что цепь началась с – x3k_js 28.11.2019, 15:42
  • 4
    Добро я одеваю, спасибо. – EduBw 28.11.2019, 17:03

то, что он перемещает, состоит в том, что ты сравниваешь String с другим и, как они говорят, что коллеги он с equals.

, Если queres делать это с == ты обрезал сравнивать с char:

System.out.println("¿Volver a jugar?(si/no): ");
volverjugar = teclado.nextLine();
char primera=volverjugar.charAt(0); // charAt retorna el chat en la posicion n.
boolean seguir;
seguir = (primera == 's' || primera == 'S'); // Notese las comillas simples.
System.out.println(seguir);

Я Надеюсь, что он подает тебя, обнимаю.

2
ответ дан 01.12.2019, 10:40

Теги

Похожие вопросы