2013-05-31 10 views
1

Я пытаюсь запустить простой код, в котором первые несколько строкПоказано случайное значение

 **System.out.println("Enter the number of nodes\n"); 
    BufferedReader bufferRead = new BufferedReader(new InputStreamReader(System.in)); 
    int n = bufferRead.read(); 
    System.out.println(n);** 

Эта часть кода находится между парой примерки поймать. Мне просто нужно отобразить количество узлов, но вместо отображения значения n оно отображает значения, предшествующие 48. Например, если вход для n равен 1, выход должен быть «1», но он отображает « 48" . Если входной сигнал равен 2, он отображает 49 и так далее.

Пожалуйста, помогите мне в этом и просветите меня своими знаниями. Благодарю.

ответ

1

48 является ASCII код 1 ... так что вы можете отобразить п-'0 'для „преобразования“ номера ASCii к действительному числу

+0

Большое спасибо. Ценю вашу помощь. Я могу просто использовать сканер для отображения int, а не использовать Bufferedreader :) – Ellipsis

1

Он отображает значение ASCII числа, которое вы получаете (вы читаете символ и затем перебрасываете его в int). Вы должны прочитать номера, используя

Scanner scanner = new Scanner(System.in); 
int n = scanner.nextInt(); 

Посмотрите на класс Scanner, что очень полезно в таких случаях: http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Scanner.html

+0

Спасибо за помощь .. действительно ценю это .. Я понял Whe я ошибался .. Í может просто использовать Сканер для чтения целого, а не BufferedReader .. Я усложнил вещи :) – Ellipsis

1

его дисплей значение ASCII брось на гольца, если вы хотите напечатать символ сам по себе

char n = (char)bufferRead.read(); 
+0

Спасибо за помощь .. действительно ценю это. Думаю, я могу просто использовать Scanner для отображения int. :) – Ellipsis

 Смежные вопросы

  • Нет связанных вопросов^_^