Java的Scanner類

1、作用:用來獲取用戶的鍵盤輸入(需要導入:import java.util.Scanner;)

2、方法:

(1)判斷是否還有數據:
  • hasNext():判斷是否含有下一個字符串
  • hasNextXxx():其中Xxx可以是int、long等代表基本數據類型的字符串
  • hasNextLine():判斷輸入中是否還有下一行
(2)獲取下一個數據:
  • next():返回輸入中下一個字符串
  • nextXxx():返回輸入中下一個類型爲Xxx的數據
  • nextLine():返回輸入中下一行字符串
(3)設置分隔符:useDelimiter(String pattern):不設置,默認分隔符是空白
//字符串
import java.util.Scanner;
public class ScannerTest {
	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		//字符串
		while(sc.hasNext()) {
			System.out.println("輸入的數據是:"+sc.next());
		}
	}
}
//int型數據
import java.util.Scanner;
public class ScannerTest {
	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		while(sc.hasNextInt()) {
			System.out.println("輸入的數據是:"+sc.next());
		}
	}
}
//一整行
import java.util.Scanner;
public class ScannerTest {
	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		while(sc.hasNextLine()) {
			System.out.println("輸入的數據是:"+sc.nextLine());
		}
	}
}

上面三個程序之間的區別在於:

(1)①與②相比,①可以輸入任何數據,如字符串、基本類型數據、中文等等;而②只能輸入int型數據,如果哪一次輸入的不是int型數據,則該程序自動結束,無法再輸入數據

(2)①與③相比,①每次遇到空格鍵,默認是一組數據,當同一行輸入的數據中,包含一個空格,那麼①自動將其當成兩個數據輸出,但是③當成一個數據。

運行上述三個代碼,得到結果如下:
在這裏插入圖片描述

import java.util.Scanner;
public class ScannerTest {
	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		//修改默認的空格分隔符,改爲換行纔是分隔符
		sc.useDelimiter("\n");
		while(sc.hasNext()) {
			System.out.println("輸入的數據是:"+sc.next());
		}
	}
}

運行結果如下:

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-MQj8wCnZ-1590974327932)(C:\Users\24973\Desktop\筆記\繪圖\Scanner類\2)]

此時不再使用空格作爲分隔符,而是遇到換行才表示是一個數據。

3、使用Scanner獲取文件輸入:使用File對象作爲Scanner對象的輸入參數
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class ScannerTest {
	public static void main(String[] args) throws FileNotFoundException{
        //使用File類新建File對象作爲Scanner對象的參數
		Scanner sc=new Scanner(new File("D:\\eclipse\\study_again\\ScannerFile.java"));  //傳入完整的位置
		while(sc.hasNextLine()) {
			System.out.println("輸入的數據是:"+sc.nextLine());
		}
	}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章