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);**

这部分代码位于 try-catch 对之间。我只需要显示节点数,但不是显示 n 的值,而是显示 48 之前的值。例如,如果 n 的输入为 1,则输出应为“1”,但显示为“48 ”。如果输入为 2,则显示 49,依此类推。

请协助我并用您的知识启发我。谢谢。

4

3 回答 3

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

于 2013-05-31T08:45:46.483 回答
1

48 是 1... 的 ASCII 码,因此您可以显示 n-'0' 以将 ASCII 数字“转换”为实数

于 2013-05-31T08:46:15.610 回答
1

如果您想打印 char 本身,它的显示 ascii 值将其转换为 char

char n = (char)bufferRead.read();
于 2013-05-31T08:46:55.517 回答