java基本输入问题
答案:6 悬赏:10 手机版
解决时间 2021-04-30 18:50
- 提问者网友:喧嚣尘世
- 2021-04-29 20:38
在C语言里,对于从键盘读入数据非常方便,比如要从键盘读入两个数分别给已经定义的俩个变量a,b赋值。可以用以下语句:
scanf("%d%d",&a,&b);
最近在学java,怎么看到那个从键盘读入一个数字并赋值给一个变量这么麻烦啊,一大串的字母,好像是这样的:
try
{
BufferedReader br=new BufferedReader(new InputStreamReade(System.in));
i=Intefer.parseInt(br.readLine());
}catch(IOException ex){}
如果要从键盘读入两个数并分别赋值要怎么做才行啊?难道要我把这么长的东西打两遍?还有就是这段代码看起来怎么这么麻烦啊?请问各位知不知道其中的每一句都代表什么?执行了什么内容?请给我详细分析一下。谢啦!
还有,是不是有其它方法可以达到相同目的,老师讲的好像是可以用Scanner的什么东西,那个我没遇到过,还不会用。请高手指点!
最佳答案
- 五星知识达人网友:蕴藏春秋
- 2021-04-29 21:55
关于你问的问题:
1.如果要从键盘读入两个数并分别赋值,需要打两遍。只要i=Intefer.parseInt(br.readLine());这个写两遍就行了。
2.BufferedReader br=new BufferedReader(new InputStreamReade(System.in));这句其实可以拆开
InputStream in= System.in;从键盘读取数据
InputStreamReader isr = new InputStreamReader(in);//从键盘读取的字节流转化为字符流
BufferedReader br=new BufferedReader(isr);
这是Io流中的包装流
用Scanner很简单的
import java.util.Scanner;
public class test
{
public static void main(String args[])
{
Scanner s = new Scanner( System.in ); // 构造为从标准输入读取
int a = s.nextInt(); // 读一个int
float b = s.nextFloat(); // 读一个float
double c = s.nextDouble(); // 读一个double
String d = s.next(); // 读一个String
System.out.println( a + " " + b + " " + c + " " + d );
}
}
全部回答
try //try-catch块 捕捉IO异常
{
//包装IO流最里层的是System.in 是标准的键盘输入流,外面被InputStreamReade,BufferedReader分别包/装
BufferedReader br=new BufferedReader(new InputStreamReade(System.in));
//br.readLine() 读入你输入的一行,然后将读入的数据解析为Integer类型的数据
i=Intefer.parseInt(br.readLine());
}catch(IOException ex){}
你可以这样,专门定义一种输入 比如,你用一个特殊的字符将你的参数分割“,”
输入 "1,2,3,4,5"
try
{
BufferedReader br=new BufferedReader(new InputStreamReade(System.in));
String input=br.readLine();
String param() = input.split(","); //将参数提取出来
}catch(IOException ex){}
- 2楼网友:西岸风
- 2021-04-30 01:50
try
{
BufferedReader br=new BufferedReader(new InputStreamReade(System.in));//声明一个读取键盘的对象(IO流中的)
i=Intefer.parseInt(br.readLine());//读取一行
}catch(IOException ex){}//捕获IO异常
------------------------------------------------------
Scanner s = new Scanner( System.in ); //创建接受对象
String d = s.next(); //接受键盘输入的值
System.out.println( s );//打印输入的值
- 3楼网友:傲气稳了全场
- 2021-04-30 00:24
导入Scanner的包或用IO 都可以啊,也不是很麻烦啊,例子上面有啊,我也是刚学Java是有点烦,多写几遍就好了
- 4楼网友:归鹤鸣
- 2021-04-29 23:10
对!可以用Scanner那个类~不过都是一样的哈!
你写出来的这种代码是通过BufferedReader的构造传了一个InputStreamReade参数
而这个InputStreamReade是字节流向字符流转换的一个桥!
它的作用是能从控制台读取信息!
如果你把上面的代码写在一个while循环里面就可以读取多行哈!
而且这种方式的结束可以用ctrl+z来结束。
有Scanner就相对简单写!
我现在还有些事!先帮你写个小例子哈!
Scanner sc = new Scanner(System.in);
String temp = sc.nextString();
这就为为temp从键盘上获取了值了哈!
如果还是不明白就追问哈!也可以加俺QQ
- 5楼网友:人類模型
- 2021-04-29 22:02
我来回答你吧!
BufferedReader br=new BufferedReader(new InputStreamReade(System.in));
这是创建BUFFEREDREADER的对象 SYSTEM.IN表示系统读入 这里涉及的JAVA的IO这一块 管通道问题
i=Intefer.parseInt(br.readLine());
br.readLine()就是键盘输入的字符 Integer.parseInt(String str)表示进行数据类型转换 由于br.readLine是STRING类型的 要将他转换为整型
Scanner s = new Scanner( System.in ); 属于IO(输入输出)中的一种包装好了的标准输入
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯