Java中使用Scanner類進行鍵盤的輸入詳解


我們在使用Java寫代碼時,經常會遇到從鍵盤輸入字符串等操作,這時候我們需要用到的是我們的Scanner類來實現獲取用戶從鍵盤上的輸入操作。

Scanner類是一個基於正則表達式的文本掃描器,它可以從文件,輸入流,字符串解析出基本類型值和字符串值。Scanner同時也提供了多個構造器,用於接收文件,輸入流,字符串。

當我們引入Scanner這個類的時候,我們需要導入:import java.util.Scanner;這個包

本篇文檔主要是通過介紹3中Scanner執行的操作類型

(1).Scanner提供了兩種方法來掃描輸入,這兩種方法分別是:hasnextXXX(),nextXXX()

hasnextXXX():表示是否還有下一個輸入項,其中XXX可以用來表示int,long,double,等代表基本數據類型的字符串。注意的是,如果我們只是判斷下一個輸入的內容是不是字符串,那么我們可以直接使用hasnext()。

nextXXX():獲取用戶輸入的項,使用nextXXX()就代表了用戶輸入的數據已經被顯示在IDE上。XXX的含義與上文的含義相同。

接下來舉一個例子來實現這兩個方法的操作:

public class test {

	public static void main(String[] args) throws FileNotFoundException {
		// TODO Auto-generated method stub
		Scanner sc = new Scanner(System.in);  //這句話代表了創建一個Scanner的實例對象,這個對象可以為用戶提供輸入,注意new Scanner(System.in)
		while(sc.hasNext()){
			System.out.println("輸入想要輸入的內容"+sc.next()); //以空格為分隔符
		}
		
		
	}

}	

 得到的最終結果如下:

 

 

 上面的這個程序,是我們得到的最終結果,它表示用戶輸入字符串,在IDE上直接顯示用戶的輸入,但是我們需要注意的是,當我輸入12 32的時候,該程序會有兩行輸入,因為我們使用的方法是以空格為分隔符的,當我們使用空格的時候,自動的變成兩個字符串輸入。

(2).Scanner類為了方便,提供了兩個方法進行逐行的讀取(相當於以回車為分隔符)。這兩種方法分別是:boolean hasNextLine(),String nextLine()。

boolean hasNextLine():返回輸入源中是否還有下一行。

String nextLine():返回輸入源中下一行的字符串。

我們也舉一個例子來實現這兩個方法,用來與上述方法進行比較:

public class test {

	public static void main(String[] args) throws FileNotFoundException {
		// TODO Auto-generated method stub
		Scanner sc = new Scanner(System.in);
		System.out.println("輸入想要輸入的內容");
		while(sc.hasNextLine()){
			System.out.println("這一段是我輸入的內容:"+sc.nextLine());
		}
	}

}	

 上述代碼,我們最終得到的結果是:

 

 通過觀察上面的結果,可以知道,空格符已經不是分隔符,只有當我們使用回車換行的時候,該方法才執行下一次的輸入。

(3).Scanner類的構造器還提供了一種可以讀取文件的輸入。該方法只需要在創建Scanner對象時傳入一個File對象作為參數,就可以讓Scanner讀取文件的內容。(IO流之后可能會專門做一篇文檔詳細說明,這里暫且知道即可。)

代碼的實現如下:

首先,我在我的D盤建一個文件夾1.txt,該文件夾的內容如下:

 

 通過執行下面的代碼:

public class test {

	public static void main(String[] args) throws FileNotFoundException {
		// TODO Auto-generated method stub
//		//讀取文件中的內容
		Scanner sc = new Scanner(new File("D:\\1.txt"));  //注意這個地方,Scanner在創建對象的時候傳入了File對象作為參數,這個File對象就是我們文件的路徑
		while(sc.hasNextLine()){
			System.out.println(sc.nextLine());
		}

	}

}	  

上述代碼得到的最終結果:

 

 與前文我們文件中所寫的內容相同。

以上這三種Scanner類使用的方式在Java初期基本OK(至少目前我只用過這三個,文件的輸入基本沒用過),如果后續我還使用了Scanner類的某些方法,我會在寫一篇后續~

 

為了我們共同進步,我這里有計算機專業的各種視頻,

如果想要,關注我的公眾號:念流聲。私聊我,看到后給你連接(只放了一張圖片,視頻有很多,需要什么可以私聊問我,有的話就給你)。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM