Java中Scanner类的用法
1、Scanner是SDK1.5新增的一个类,可是使用该类创建一个对象.Scannerreader=newScanner(System.in); 然后reader对象调用下列方法(函数),读取用户在命令行输入的各种数据类型 next.Byte(),nextDouble(),nextFloat,nextInt(),nextLine(),nextLong(),nextShot() 上述方法执行时都会造成堵塞,等待用户在命令行输入数据回车确认.例如,拥护在键盘输入12.34,hasNextFloat()的值是true,而hasNextInt()的值是false.NextLine()等待用户输入一个文本行并且回车,该方法得到一个String类型的数据。
2、下面是一个实例:importjava.util.*;publicclassExample{publicstaticvoidmain(Stringargs[]){System.out.println("请输入若干个数,每输入一个数用回车确认");System.out.println("最后输入一个非数字结束输入操作");Scannerreader=newScanner(System.in);doublesum=0;intm=0;while(reader.hasNextDouble()){doublex=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);}}运行结果:C:\java>javaExample请输入若干个数,每输入一个数用回车确认最后输入一个非数字结束输入操作34.13445d3个数的和为113.1000003个数的平均值是37.700000
3、C:\java>另一个例子,读取并分析文本文件:hrinfo.txt,文本文件的内容如下:老赵,28,feb-01,true小竹,22,颊俄岿髭dec-03,false阿波,21,dec-03,false凯子,25,dec-03,true 程序:importjava.util.Scanner;importjava.io.File;importjava.io.FileNotFoundException;publicclassreadhuman{privatestaticvoidreadfile(Stringfilename){try{Scannerscanner=newScanner(newFile(filename));scanner.useDelimiter(System.getProperty("line.separator"));while(scanner.hasNext()){parseline(scanner.next());}scanner.close();}catch(FileNotFoundExceptione){System.out.println(e);}}privatestaticvoidparseline(Stringline){Scannerlinescanner=newScanner(line);linescanner.www.gzlij.com useDelimiter(",");//可以修改usedelimiter参数以读取不同分隔符分隔的内容Stringname=linescanner.next();intage=linescanner.nextInt();Stringidate=linescanner.next();booleaniscertified=linescanner.nextBoolean();System.out.println("姓名:"+name+",年龄:"+age+",入司时间:"+idate+",验证标记:"+iscertified);}publicstaticvoidmain(String[]args){if(args.length!=1){System.err.println("usage:javareadhumanfilelocation");System.exit(0);}readfile(args[0]);}}运行结果:C:\java>javareadhumanhrinfo.txt姓名:老赵,年龄:28,入司时间:feb-01,验证标记:true姓名:小竹,年龄:22,入司时间:dec-03,验证标记:false姓名:阿波,年龄:21,入司时间:dec-03,验证标记:false姓名:凯子,年龄:25,入司时间:dec-03,验证标记:true