Java "не видит" русский язык

Я изучаю Java, дошел до Scanner, хотел вывести ответ, который написан в case, но почему-то программа игнорирует русские символы при написании в терминал(использовал и CMD и PowerShell).

import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("Текст");
        String s = scanner.nextLine();
        switch(s) {
            case "Первый":
                System.out.println("Это первый");
                break;
            case "Второй": 
                System.out.println("Это второй");
                break;
            case "Третий":
                System.out.println("Это третий");
                break;
            default:
                System.out.println("Ничего");
        }
    }
}

Допустим, я пишу в терминал Первый, но вместо текста Это первый, мне пишет Ничего, если тот же самый код написать с Int и использовать числа, то все работает как надо. Откатывался до JDK-17 и JDK-18, не помогло. Использую VSCode, как я думаю, проблема в кодировке, менял на Windows-1251, в теории все работало, ответ был такой, какой надо, но вместо русских букв были "?????". Возможно вопрос написал не совсем правильно, но думаю основную мысль я передал. Буду благодарен, если поможете новичку разобраться. Спасибо!

PS: Если убрать default, то ничего не изменится, просто в терминале ничего не будет.


Ответы (1 шт):

Автор решения: Lith

Можно использовать месседж бокс например вот так

import javax.swing.JOptionPane;

public class Test {
    public static void main(String[] args) {
        String s = JOptionPane.showInputDialog("Введите текст:");
        
        // Print the input for debugging
        System.out.println("Вы ввели: '" + s + "'"); // This will help you see exactly what was input

        // Handle the input in the same way as before
        if (s != null) {
            s = s.trim();
            switch (s) {
                case "Первый":
                    System.out.println("Это первый");
                    break;
                case "Второй": 
                    System.out.println("Это второй");
                    break;
                case "Третий":
                    System.out.println("Это третий");
                    break;
                default:
                    System.out.println("Ничего");
            }
        } else {
            System.out.println("Ввод отменен");
        }
    }
}

Если вы хотите то можете установить Intellij IDEA Community Edition.

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.nio.charset.StandardCharsets;

public class Main {
    public static void main(String[] args) {
        // Using InputStreamReader to read UTF-8 encoded input
        try (BufferedReader reader = new BufferedReader(new InputStreamReader(System.in, StandardCharsets.UTF_8))) {
            System.out.println("Введите текст:");
            String s = reader.readLine();  // Read the input without trimming initially

            // Print the input for debugging
            System.out.println("Вы ввели: '" + s + "'"); // This will help you see exactly what was input

            // Trim the input for comparison purposes
            s = s.trim();

            switch (s) {
                case "Первый":
                    System.out.println("Это первый");
                    break;
                case "Второй":
                    System.out.println("Это второй");
                    break;
                case "Третий":
                    System.out.println("Это третий");
                    break;
                default:
                    System.out.println("Ничего");
            }
        } catch (Exception e) {
            System.out.println("Ошибка при вводе: " + e.getMessage());
        }
    }
}

Вывод в консоли при вводе Первый

"C:\Program Files\Eclipse Adoptium\jdk-20.0.2.9-hotspot\bin\java.exe" -javaagent:C:\Users\Admin\AppData\Local\JetBrains\Toolbox\apps\IDEA-C\ch-0\223.8617.56\lib\idea_rt.jar=36059:C:\Users\Admin\AppData\Local\JetBrains\Toolbox\apps\IDEA-C\ch-0\223.8617.56\bin -Dfile.encoding=UTF-8 -Dsun.stdout.encoding=UTF-8 -Dsun.stderr.encoding=UTF-8 -classpath C:\Users\Admin\IdeaProjects\untitled\out\production\untitled Main
Введите текст:
Первый
Вы ввели: 'Первый'
Это первый
→ Ссылка