永发信息网

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

全部回答
  • 1楼网友:佘樂
  • 2021-04-30 02:02

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(输入输出)中的一种包装好了的标准输入

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯