我正在尝试运行一个简单的代码,其中前几行是
**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,依此类推。
请帮助我,并用你的知识启发我。谢谢。
答案 0 :(得分: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
答案 1 :(得分:1)
48是1的ASCII码...所以你可以显示n-'0'将“ascii”转换为实数
答案 2 :(得分:1)
如果要打印char本身,则显示ascii值将其转换为char
char n = (char)bufferRead.read();