Задать вопрос
dan1kcode
@dan1kcode

Почему ответ на русском языке в терминале VSC не принимается и просто скипается?

При вводе русского ответа, который прописан в условиях, терминал просто скипает его и не отвечает. Если введу значение string на английском, то терминал спокойно даст ответ, но на русском он просто не хочет отвечать. В чем проблема?

import java.util.Scanner;

public class Switch {
public static void main(String[] args){
Scanner scanner = new Scanner(System.in, "UTF-8");
System.out.println("Введите возраст");
String age = scanner.nextLine();
switch(age){
case "ноль" :
System.out.println("Ты родился");
break;
case "шесть" :
System.out.println("Ты пошел в школу");
break;
case "восемнадцать" :
System.out.println("Ты закончил школу");
break;
default :
System.out.println("Значения нет в списке");
}
}
}
  • Вопрос задан
  • 58 просмотров
Подписаться 1 Простой 2 комментария
Пригласить эксперта
Ответы на вопрос 2
@pavlik321
Генератор случайных Q&A важных людям
У Вас не UTF-8? Изучите вопрос с кодировкой у вас
Ответ написан
@rPman
Добавь в switch case секцию default: и выведи на экран что у тебя в age (что бы увидеть невидимые символы типа табуляция, \n и т.п, сериализуй его чем то типа json или если у тебя java 15 версии String.escape() ) либо отладкой проанализируй содержимое после ввода слова с консоли.

Еще момент, у тебя switch подчеркнут варнингом, скорее всего из-за отсутствия default, но есть еще вариант, на сколько я знаю до кажется 7 версии строки в switch использовать нельзя (в том же c++ это вообще было типа не ошибка, но строки не сравнивались, а использовались указатели на них, соответственно это работало как ожидается только для констант) может оно об этом тебе и говорит?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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