1.Scanner是SDK1.5新增的一个类,可是使用该类创建一个对象.
Scanner reader=new Scanner(System.in);
然后reader对象调用下列方法(函数),读取用户在命令行输入的各种数据类型: next.Byte(),nextDouble(),nextFloat,nextInt(),nextLin(),nextLong(),nextShot()
上述方法执行时都会造成堵塞,等待用户在命令行输入数据回车确认.例如,拥护在键盘输入12.34,hasNextFloat()的值是true,而hasNextInt()的值是false. NextLine()等待用户输入一个文本行并且回车,该方法得到一个String类型的数据。
2.Scanner是一个可以使用正则表达式来分析基本类型和字符串的简单文本扫描器!也就是控制台应用程序最为常用的文本输入方式!
BufferedReader是字符输入流中读取文本,缓冲各个字符,从而提供字符、数组和行的高效读取!速度要比Scanner快!而且也可以设置缓冲区的大小,或者可使用默认的大小。大多数情况下,默认值就足够大了。
3.下面是一个实例:如代码所示
- public class ScannerDemo{
- public static void main(String args[]){
- Scanner reader=new Scanner(System.in);
- double sum=0;
- int m=0;
- while(reader.hasNextDouble()){
- double x=reader.nextDouble();
- m=m+1;
- sum=sum+x;
- }
- System.out.printf("%d个数的和为%f/n",m,sum);
- System.out.printf("%d个数的平均值是%f/n",m,sum/m);
- }
- }
复制代码 |