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