1. 程式人生 > >java 輸入的幾種方式

java 輸入的幾種方式

這個是我在做浙大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型別什麼的都是一樣的
float f=sc.nextFloat();
		String c=sc.nextLine();
		System.out.println("字串:"+c+"浮點型:"+f);
第二種:BufferedReader類和InputStreamReader類(略微麻煩)
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);

	}
scanner主要提供了兩個方法來掃描輸入(以下的函式在上述程式碼中均有示例,可提供參考):
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物件。