1 import java.util.Scanner;//方法1 2 import java.io.BufferedReader;//方法2 3 import java.io.IOException;//方法3 4 import java.io.InputStreamReader;//方法2 5 6 7 public class InputTest{ 8 9 public static void main(String args[]) throws IOException{ 10 // 這個拋出異常是因為方法三 11 /* 12 * 獲取鍵盤輸入方法一 13 */ 14 Scanner input = new Scanner(System.in); 15 System.out.print("方法一輸入:"); 16 String s = input.nextLine(); 17 System.out.println("輸入內容為:"+s); 18 input.close(); 19 20 // 獲取鍵盤輸入方法二 21 InputStreamReader isr = new InputStreamReader(System.in); 22 BufferedReader br = new BufferedReader(isr); 23 System.out.print("方法2輸入: "); 24 String line; 25 try { 26 line = br.readLine(); 27 System.out.println("Show: " + line); 28 } catch (IOException e) { 29 e.printStackTrace(); 30 } finally { 31 32 } 33 34 // 獲取鍵盤輸入方法三 35 System.out.print("Enter a Char:"); 36 char i = (char) System.in.read(); 37 System.out.println("your char is :"+i); 38 } 39 }
方法1:有一個需要注意的地方,就是nextLine()函數。next()和nextLine()的區別:在java中,next()方法是不接收空格的,在接收到有效數據前,所有的空格或者tab鍵等輸入被忽略,若有有效數據,則遇到這些鍵退出。nextLine()可以接收空格或者tab鍵,其輸入應該以enter鍵結束。
方法3:System.in.read()只能針對一個字符的獲取,同時,獲取進來的變量的類型只能是char,當我們輸入一個數字,希望得到的也是一個整型變量的時候,我們還得修改其中的變量類型,這樣就顯得比較麻煩。
