Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Программирование на Java, сравнение строк с содержанием кириллицы

Steve2005 Ученик (178), на голосовании 2 месяца назад
 private static void exitOrNot() { 
Scanner quit = new Scanner(System.in);
System.out.println("Молодец! Введите \"Стрижка сегодня\" или \"Возможно завтра\" чтобы воспользоваться Более Продвинутым Калькулятором снова");
String don = quit.nextLine();
if(don.equals("Стрижка сегодня") || don.equals("Возможно завтра")) {
calculator();
} else {
System.out.println("Введите верный ответ.\nReloading...\n\nВведите \"Стрижка сегодня\" или \"Возможно завтра\" чтобы воспользоваться Более Продвинутым Калькулятором снова");
String yash = quit.nextLine();
if(yash.equals("Стрижка сегодня") || yash.equals("Возможно завтра")){
calculator();
} else {
System.out.println("Ошибочка");
}
}
}
Вот метод со сканером определяющий ввод пользователем в терминал текста.
Так-с, некорректно работает метод сравнения "equals" с русским текстом при вводе абсолютно правильных данных в терминале. Я сижу который час мозги компостирую себе, нигде нет нормального ответа как это решить. Найдитесь гении Java, мне нужно чтобы вводился текст кириллицей в терминал, и условие успешно выполнялось!!
Голосование за лучший ответ
Максим Искусственный Интеллект (213104) 3 месяца назад
В дебаггере посмотри, что содержит твоя переменная.
Steve2005Ученик (178) 3 месяца назад
"���� ���"
Ну вот это он возвращает. Что дальше?
Steve2005, Делаю файлик .java в кодировке UTF-8
 public class Q239373274 { 
    public static void main(String[] args) { 
        Scanner scanner = new Scanner(System.in); 
        System.out.println("ИиЯяЮю"); 
        String str = scanner.nextLine(); 
        System.out.println(str); 
        if ("ИиЯяЮю".equals(str)) { 
            System.out.println("Прекрасно"); 
        } else { 
            System.out.println("Плохо"); 
        } 
    } 
} 
Компилирую: > javac -encoding UTF-8 Q239373274.java Смотрю в консоле какая кодировка: > chcp Active code page: 437 Меняю на кириллицу 1251 > chcp 1251 Active code page: 1251 Запускаю > java -Dfile.encoding=Cp1251 Q239373274 ИиЯяЮю ИиЯяЮю ИиЯяЮю Все прекрасно работает.
Похожие вопросы