Scanner主要是用来简化文本扫描,最实用的地方表如今获取控制台输入。java
在使用这个类以前要用new Scanner(System.in)实例化一个Scanner对象,才能调用类中的方法。spa
功能1:扫描控制台输入的数据,可接收的数据类型有:整数,字符串,浮点数等,具体方法以下面所示:code
一、nextInt() 接收控制台输入的int型数据;对象
二、nextDouble() 接收控制台输入的double型数据;blog
三、nextFloat() 接收控制台输入的float型数据;字符串
四、next() 接收控制台输入的字符串数据,以空格键做为两个字符串间间隔的标志;get
五、nextLine() 接收控制台输入的以回车键结束的字符串数据;input
部分方法运用:it
1 System.out.println("请输入一个数字:"); 2 Scanner sc = new Scanner(System.in); 3 int number = sc.nextInt();//接收整型数据 4 5 System.out.println("请输入一段英文字符串:"); 6 String str = sc.next();//接收字符串 7 8 System.out.println("请输入一个成绩:"); 9 double score = sc.nextDouble();//接收浮点型数据 10 11 //当要再次使用nextLine的时候得从新构建一个新的Scanner对象如: 12 System.out.println("请输入一段话:"); 13 Scanner input = new Scanner(System.in); 14 String nextStr = input.nextLine();
Scanner的其余部分方法:io
一、delimiter() 返回此 Scanner 当前正在用于匹配分隔符的 Pattern;
二、hasNext() 判断扫描器中当前扫描位置后是否还存在下一段;
三、hasNextLint() 若是在此扫描器的输入中存在另外一行,则返回 true
等。
1 public class readhuman { 2 private static void readfile(String filename) { 3 try { 4 Scanner scanner = new Scanner(new File(filename)); 5 scanner.useDelimiter(System.getProperty("line.separator")); 6 while (scanner.hasNext()) { 7 parseline(scanner.next()); 8 } 9 scanner.close(); 10 } catch (FileNotFoundException e) { 11 System.out.println(e); 12 } 13 } 14 15 private static void parseline(String line) { 16 Scanner linescanner = new Scanner(line); 17 linescanner.www.gzlij.com useDelimiter(","); 18 //能够修改usedelimiter参数以读取不一样分隔符分隔的内容 19 String name = linescanner.next(); 20 int age = linescanner.nextInt(); 21 String idate = linescanner.next(); 22 boolean iscertified = linescanner.nextBoolean(); 23 System.out.println("姓名:"+name+" ,年龄:"+ age+" ,入司时间:"+ idate+" ,验证标记:"+iscertified ); 24 } 25 26 public static void main(String[] args) { 27 if (args.length != 1) { 28 System.err.println("usage: java readhuman file location"); 29 System.exit(0); 30 } 31 readfile(args[0]); 32 } 33 } 34 运行结果:C:\java>java readhuman hrinfo.txt姓名:老赵 ,年龄:28 ,入司时间:feb-01 35 ,验证标记:true姓名:小竹 ,年龄:22 ,入司时间:dec-03 ,验证标记:false姓名:阿波 ,年龄:21 ,入司时间:dec-03 36 ,验证标记:false姓名:凯子,年龄:25 ,入司时间:dec-03 ,验证标记:true