Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Общие вопросы по Java, Java SE, Kotlin
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.05.2010, 19:38   #1
Syltan
Заблокирован
 
Регистрация: 27.08.2009
Сообщений: 569
По умолчанию Простое меню на Яве

Не работает простое меню на Яве, пишу по книге код.
Не компилится, останавливается на

Код:
choice = (char)System.in.read(d);
Вот весь код:
Код:
package java2;
public class Main {
    public static void main(String[] args)
    throws java.io.IOException{
char choice=5;
    String hello ="Привет";
    String charsetName="Cp866";
    System.out.write(hello.getBytes(charsetName));
do{
       System.out.println("Справка по:");
       System.out.println(" 1. if");
       System.out.println(" 2. switch");
       System.out.println(" 3. while");
       System.out.println(" 4. do-while");
       System.out.println(" 5. for\n");
       System.out.println(" Выберите интересующий пункт:");
       choice = (char)System.in.read(d);
}while(choice<'1' || choice>'5');
 System.out.println("\n");
 switch(choice){
     case '1':System.out.println("if:\n");
              System.out.println("if(условие  оператор;");
              System.out.println("else оператор;");
              break;
     case '2':
              System.out.println("switch: \n");
              System.out.println("switch(выражение) {");
              System.out.println(" case константа:");
              System.out.println(" последовательность операторов");
              System.out.println(" break;");
              System.out.println(" // ... ");
              System.out.println(" }");
     break;
     case '3':
               System.out.println(" while:\n");
               System.out.println(" while(условие) оператор;");
               break;
     case '4':
              System.out.println(" do-while:\n");
              System.out.println("do { ");
              System.out.println(" оператор");
              System.out.println(" } (условие);");
              break;
     case '5':
              System.out.println(" for:\n");
              System.out.println(" for(инициализация; условие; повторение)");
              System.out.println(" оператор");
              break;


 }
}
}
Syltan вне форума Ответить с цитированием
Старый 24.05.2010, 20:13   #2
Syltan
Заблокирован
 
Регистрация: 27.08.2009
Сообщений: 569
По умолчанию

Код:
package java2;
public class Main {
    public static void main(String[] args)
    throws java.io.IOException{
    String hello ="Привет";
    String charsetName="Cp866";
    System.out.write(hello.getBytes(charsetName));
char choice;

do{
       System.out.println("Справка по:");
       System.out.println(" 1. if");
       System.out.println(" 2. switch");
       System.out.println(" 3. while");
       System.out.println(" 4. do-while");
       System.out.println(" 5. for\n");
       System.out.println(" Выберите интересующий пункт:");
       choice = (char)System.in.read();
}while(choice<'1' || choice>'5');
 System.out.println("\n");
 switch(choice){
     case '1':System.out.println("if:\n");
              System.out.println("if(условие  оператор;");
              System.out.println("else оператор;");
              break;
     case '2':
              System.out.println("switch: \n");
              System.out.println("switch(выражение) {");
              System.out.println(" case константа:");
              System.out.println(" последовательность операторов");
              System.out.println(" break;");
              System.out.println(" // ... ");
              System.out.println(" }");
     break;
     case '3':
               System.out.println(" while:\n");
               System.out.println(" while(условие) оператор;");
               break;
     case '4':
              System.out.println(" do-while:\n");
              System.out.println("do { ");
              System.out.println(" оператор");
              System.out.println(" } (условие);");
              break;
     case '5':
              System.out.println(" for:\n");
              System.out.println(" for(инициализация; условие; повторение)");
              System.out.println(" оператор");
              break;


 }
}
}
Вот так вроде работает, толкьо русская кодировка не отображается в командной строке. Как исправить?
Syltan вне форума Ответить с цитированием
Старый 25.05.2010, 14:31   #3
Lemon2009
Пользователь
 
Аватар для Lemon2009
 
Регистрация: 29.07.2009
Сообщений: 72
По умолчанию

вроде никак. Либо пошаманить с фонтами среды. Но надо ли это? Это все таки консоль
Совершенство в простоте
Lemon2009 вне форума Ответить с цитированием
Старый 31.05.2010, 15:18   #4
Fox
линуксоид
Форумчанин
 
Аватар для Fox
 
Регистрация: 02.11.2006
Сообщений: 157
По умолчанию

ну с кодировкой проще. по умолчанию ваши русские символы находятся в кодировке utf8(по крайней мере у меня) а в консоль вам нужно отправить cp866. Краткое описание смотрим тут

Последний раз редактировалось Fox; 31.05.2010 в 15:21.
Fox вне форума Ответить с цитированием
Старый 01.06.2010, 20:35   #5
Inf-root
Новичок
Джуниор
 
Регистрация: 23.04.2008
Сообщений: 1
По умолчанию

Можно так же подменить поток вывода

Код:
System.setOut(new PrintStream(System.out, true, "Cp866"));
Inf-root вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Первая прога с переменными на Яве Syltan Общие вопросы по Java, Java SE, Kotlin 7 15.05.2010 09:57
как написать учебник на яве Screamo Общие вопросы по Java, Java SE, Kotlin 1 30.04.2010 13:38
ТРАНСЛИТЕРАЦИЯ НА ЯВЕ! 4ika Общие вопросы по Java, Java SE, Kotlin 3 24.02.2010 19:23
Помогите взломать тест (вроде он написан в яве)) Sergey_d Общие вопросы по Java, Java SE, Kotlin 0 03.06.2009 14:53
Где найти норм мануал по Яве Скрипт mogul82 JavaScript, Ajax 3 17.01.2009 22:25