java 輸入的幾種方式
阿新 • • 發佈:2019-02-18
這個是我在做浙大acm中第一道題A+B problem的原始碼
以下兩種方法是我們在java輸入中較為常用的方法
第一種:scanner類(較為簡單)
Scanner sc= new Scanner(System.in);
while (sc.hasNextInt()) {
int a=sc.nextInt();
int b=sc.nextInt();
System.out.println(a+b);
}
當然,如果後面你想輸入String 、float型別什麼的都是一樣的第二種:BufferedReader類和InputStreamReader類(略微麻煩)float f=sc.nextFloat(); String c=sc.nextLine(); System.out.println("字串:"+c+"浮點型:"+f);
scanner主要提供了兩個方法來掃描輸入(以下的函式在上述程式碼中均有示例,可提供參考):public static void main(String[] args) { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = null; System.out.println("請輸入字串:"); try { str = br.readLine(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println("輸入字串為:"+str); }
1、boolean hasNextXxx():是否還有下一個輸入項,其中Xxx可以是Int,Long等基本資料型別的字串。如果需要判斷是否包含下一個字串,可省去Xxx。
2、string nextXxx():獲取下一個輸入項。
以下兩個方法用來讀取一行:
1、boolean hasNextLine():是否還有下一行
2、string nextLine():返回下一行的字串
BufferedReader是javaIO流中的一個字串、包裝類,它必須建立在另一個字元流的基礎之上,但system.in是位元組流,需用InputStreamReader將其包裝成字元流。
兩者不同之處在於:
BufferedReader可以逐行讀取使用者的鍵盤輸入,每次使用者的鍵盤輸入都被BufferedReader當成string物件。
Scanner不僅讀取使用者的鍵盤輸入,還可以讀取檔案輸入。只要在建立Scanner物件時,傳入一個File物件作為引數即可。
預設情況下,Scanner使用空白(空格、回車)作為多個輸入項之間的分隔符。
與Scanner不同的是,BufferedReader不能讀取基本型別輸入項,它總是讀取string物件。