(輸入與輸出支援)Scanner類
阿新 • • 發佈:2021-01-27
技術標籤:Java語言高階特性java
Scanner類
java.util.Scanner是從JDK1.5之後追加的一個程式類,其主要的目的是為了解決輸入流的訪問問題單位,可以理解為BufferedReader的替代功能類。
在Scanner類有如下幾個核心的方法:
-
構造:publicScanner(InputStreamsource)
-
判斷是否有資料:publicbooleanhasNext()
-
取出資料:publicStringnext()
範例:使用Scanner實現鍵盤輸入
public static void main(String[] args) throws IOException { Scanner sc = new Scanner(System.in); System.out.println(); if(sc.hasNextInt()) { //判斷是否有整數輸入 int age = sc.nextInt(); //直接獲取數字 System.out.println("年齡:"+age); }else { System.out.println("輸入年格式齡錯誤"); } sc.close(); }
使用Scanner輸入資料還有一個最大的特點是可以直接利用正則進行驗證判斷。
範例:輸入一個人的生日(yyyy-MM-dd)
public static void main(String[] args) throws IOException, ParseException { Scanner sc = new Scanner(System.in); System.out.println(); if(sc.hasNext("\\d{4}-\\d{2}-\\d{2}")) { //判斷是否符合格式 String str = sc.next("\\d{4}-\\d{2}-\\d{2}"); System.out.println("生日:"+new SimpleDateFormat("yyy-MM-dd").parse(str)); }else { System.out.println("輸格式錯誤"); } }
現在可以發現Scanner的整體設計要好於BufferedReader,而且比直接使用InputStream類讀取方便。