黑马程序员技术交流社区

标题: System.in问题 [打印本页]

作者: 麦者    时间: 2013-10-17 18:59
标题: System.in问题
本帖最后由 麦者 于 2013-10-18 08:23 编辑

键盘录入可以用InputStreamReader isr=new InputStreamReader(System.in);
        BufferedReader br= new BufferedReader(isr);
也可以用Scanner scan = new Scanner(System.in);貌似用第一种的多,有什么重要的区别么?
作者: 周志龙    时间: 2013-10-17 19:13
Scanner scan = new Scanner(System.in是经过包装的..
作者: loading……99.9    时间: 2013-10-17 19:31
1、Scanner类提供了非常方便的方法,如nextInt() ,可以将输入的内容转换成一个int,如nextFloat() 将一个输入内容转换成一个float,等等。而同过BufferedReader这种方式则需要读入一串字符串以后再转成你所需要的数据类型。
2、Scanner的扫描结束标志是空格,tab键,回车,当遇见3个中的任意一个,则Scanner就会返回下一个输入了,而BufferedReader的结束标志是回车。
源码:
  1. Scanner scanner = new Scanner(System.in);
  2.                 System.out.print("请输入一串字符串:");
  3.                 System.out.println("你输入的的是:" + scanner.next());
  4.                 System.out.println("你输入的的是:" + scanner.next());
  5.                 System.out.println("你输入的的是:" + scanner.next());
复制代码
控制台的输入输出:
请输入一串字符串:你好 中国        你好世界
你输入的的是:你好
你输入的的是:中国
你输入的的是:你好世界
”好“和”中“之间有个空格,”国“和”你“之间是个tab,”界“后是个回车。
作者: 麦者    时间: 2013-10-17 19:43
loading……99.9 发表于 2013-10-17 19:31
1、Scanner类提供了非常方便的方法,如nextInt() ,可以将输入的内容转换成一个int,如nextFloat() 将一个 ...

这样,那scanner的用法应该比较方便了
作者: cuilitang    时间: 2013-10-17 20:22
InputStreamReader jdk1.1就有了,用的人自然多;Scanner类是JDK1.5新特性,更加便捷。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2