为什么我的Java程序只能读取我输入的第一个数字

这个是源代码 有没有大神帮忙指出一下问题啊 求求啦 import java.io.*;public class d4 { public static void main(String args[])throws java.io.IOException{ System.out.println("请输入数字"); int a=System.in.read()-48; System.out.println("你输入的数字是"+a); }}

import java.io.*;
import java.util.Scanner;
public class d4 { 
    public static void main(String args[])throws java.io.IOException{     
        //定义读取键盘输入的对象        
        Scanner in = new Scanner(System.in);
        System.out.println("请输入数字"); 
        //获取键盘输入的整形值
        int a=in.nextInt(); 
        System.out.println("你输入的数字是"+a); 
    }
}

System.in.read() 本来就时值读下一个字节:

https://docs.oracle.com/javase/7/docs/api/java/io/InputStream.html

 

可以用Scanner

import java.util.Scanner;  // Import the Scanner class


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

 

System.in.read()本身只能输入一个字符的,如果你想在控制台输入整数,你应该用java.util.Scanner 这个类的nextInt()方法,代码如下:

Scanner sc=new Scanner(System.in);
int num=sc.nextInt();

如果我的回答有帮助到你,记得点采纳哦。

我先回答这么久,为什么不采纳我的回答呢?

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632