System.in.read()的使用方法

来源:互联网 发布:vb计算机二级考试试题 编辑:程序博客网 时间:2024/05/17 23:21

关键字: system.in.read()

我们先来看一段程序

package system.in;import java.io.IOException;public class SystemIn {    /**     * @param args     * @throws IOException     */    public static void main(String[] args) throws IOException {        int a = 0;        a = System.in.read();        System.in.getClass();        System.out.println("a=" + a);        int sum = 0;        for (int i = 0; i <= a; i++)            sum += i;        System.out.println(sum);    }}

当我们输入为

5

发现输出

a=53
1431

会觉得很奇怪,为什么我输入的是5,结果输出a却为53,其实如果你了解read()这个函数,就很容易明白,System.in.read()返回的是输入数值的 ASKII 码(一个 int 整数)。

那么怎么来解决这种问题呢,有两种方式可以解决

1.采用System.out.write();注意使用这种方法,只能将值输出的时候再转换回来,但是里面的运算逻辑值还是错误的,就是sum的值还是错误的。

2.采用BufferedReader,但是要注意的是BufferReader读入的是一个字符串,所以我们在程序里面还要将其转换为Integer,我们就会发现代码如下

BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        int a = Integer.parseInt(reader.readLine());
        System.out.println("a=" + a);
        int sum = 0;
        for (int i = 0; i <= a; i++)
            sum += i;
        System.out.println(sum);

使用这种方法需要注意你输入的值,必须是数字,不能是字符串

0 0
原创粉丝点击