MF99 coding 💻

keep learning; keep coding;

好用的 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"

就這樣! 超簡單又超好用~