#java
Пытаюсь написать программу на Java. Ее смысл: должна быть введена текстовая переменная (название месяца). Пользователь вводит возможные варианты, а программа говорит, угадал он или нет. Подскажите, какой тип должна иметь загаданная переменная? Пробовала String s = "Апрель", но компилятор не только меняет слово "Апрель" на непонятные знаки, но еще и выдает что-то об открытом типе литерала.
Ответы
Ответ 1
1-й способ: Ваша проблема описана тут. Если вы пишете в NetBeans, например, то вам необходимо зайти в свойства проекта и поменять кодировку на windows-1251. После этого данный код работает корректно: public static void main(String[] args) { System.out.println("Введите месяц:"); Scanner in = new Scanner(System.in); String s = in.nextLine(); System.out.println(s); } 2 способ: Указать кодировку вводимых символов сразу: public static void main(String[] args) throws UnsupportedEncodingException, IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in,"Cp1251")); System.out.println("Введите месяц:"); //Scanner in = new Scanner(System.in); String s = br.readLine(); System.out.println(s); } Вывод программы в обоих случаях: Для угадывания случайного элемента из массива вам подойдет такой код: public static void main(String[] args) throws UnsupportedEncodingException, IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in,"Cp1251")); System.out.println("Введите месяц:"); //Задаем массив месяцев для ввода: String[] arr = {"Январь", "Февраль", "Март", "Апрель", "Май", "Июнь", "Июль"}; Random rand = new Random(); //Выбираем рандомный элемент (месяц) из нашего массива: String s, luck = arr[rand.nextInt(arr.length)]; boolean isLuck = false; //Пока не введен верно месяц с консоли, крутим цикл до посинения: while (!isLuck) { s = br.readLine(); if (s.equals(luck)) { System.out.println("Верно!"); isLuck = true; } else { System.out.println("Не угадали, попробуйте еще раз"); } } } Вывод:
Комментариев нет:
Отправить комментарий