好用的 Scanner
前陣子有機會參加了幾場國外公司的 Phone interview 以及 Whiteboard coding interview (雖然結果都是沒上...)
但是過程中接觸到了一些線上 Coding 的網站,裡面有很多地方是要做基本的 Command line 的 IO。
基本上 Java 在 Standard Output 的部份在還算簡單,就 System.out.print
就解決了。
但是在 Standard Input 的地方就麻煩了點...
所以在過程中有學到一個好用的 Scanner 類別! 所以這邊記錄一下使用方式~
假設現在我需要有個程式,在 Command line 去讀以下資料 1 2 3.0 4
前兩個我要讀成 int 第三隔我要讀成 fload 第四個我要讀成 String
在 Java 中最原始的Standard input 作法是要用 Reader 的方式去讀
BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int word = 0; while(word != "-1"){ word = br.read(); //... do data check and Casting }
但是這個作法很麻煩,又有一堆迴圈。又要自己處理轉型的問題。 所以這時候 Scanner 就非常好用了~
參考一下以下的 Sample Code
import java.util.Scanner ... Scanner input = new Scanner(System.in); // input = 1 2 3.0 4 int a = input.nextInt(); // a = 1 int b = input.nextInt(); // b = 1 float c = input.nextFloat(); // c = 3.0 String d = input.next(); // d = "4"
就這樣! 超簡單又超好用~