您好,登錄后才能下訂單哦!
這篇文章主要介紹了Java中怎么使用Scanner類,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
Scanner類用于獲取鍵盤輸入(是一個基于正則表達式的文本掃描器),它可以從文件、字符串、輸入流中解析出基本類型值和字符串值。Scanner類提供了多個構造器,不同的構造器可以接收文件、字符串和輸入流作為數據源,用于從文件、字符串和輸入流中解析數據。
Scanner類主要提供了兩個方法來掃描輸入:
hasNextXx():是否還有下一個輸入項,其中Xxx可以是Int、Long等代表基本數據類型的字符串。如果只是判斷是否包含下一個字符串,則直接使用hasNext()。
nextXxx():獲取下一個輸入項。Xxx的含義同上。
默認情況下,Scanner使用空白(包括空格、Tab空白和回車)作為多個輸入項的分隔符。
下面程序使用Scanner來獲得用戶的鍵盤輸入:
public class Test{ public static void main(String[] args){ //System.in代表鍵盤輸入 Scanner sc = new Scanner(System.in); //下面這行代碼是把回車作為分隔符 sc.useDelimiter("n"); //判斷是否還有下一個輸入項 while(sc.hasNext()){ //輸出輸入項 System.out.println("鍵盤輸入的內容是:"+sc.next()); } } }
運行上面的程序,程序會通過Scanner不斷的從鍵盤讀取鍵盤輸入,然后打印到控制臺,程序運行效果如下:
java
鍵盤輸入的內容是:java
c++
鍵盤輸入的內容是:c++
html
鍵盤輸入的內容是:html
為Scanner設置分隔符使用 useDelimiter(String pattern)方法即可,該方法的參數是一個正則表達式(后面發布內容會介紹到),如果把上面程序這一行sc.useDelimiter("\n")注釋掉,該程序就會把鍵盤的每行輸入當成一個輸入項,不會以空格、Tab空白或回車等作為分隔符。
其實,Scanner提供了兩個簡單的逐行讀取的方法:
boolean hasNextLine():返回輸入源中是否還有下一行。 String nextLine():返回輸入源中下一行的字符串。 Scanner除了可以獲取字符串輸入項之外,還可以獲取任意基本類型的輸入項,如下程序: public class Test{ public static void main(String[] args){ //System.in代表鍵盤輸入 Scanner sc = new Scanner(System.in); //判斷是否還有下一個long型整數 while(sc.hasNextlong()){ //輸出輸入項 System.out.println("鍵盤輸入的內容是:"+sc.nextlong()); } } }
上面程序通過hasNextLong()和nextLong()兩個方法可以直接獲取輸入的Long型整數,如果需要獲取其它基本類型的輸入項,則可以用相同的方法。
Scanner除了能讀取鍵盤輸入外,還可以讀取文件輸入。只要在創建Scanner對象時傳入一個File對象作為參數即可,例如下面的示例:
public class Test{ public static void main(String[] args) throws Exception{ //Scanner讀取文件內容:將一個File對象作為Scanner的構造器參數 Scanner sc = new Scanner(new File("Test.java")); System.out.println("Test.java文件內容如下:"); //判斷是否還有下一行 while(sc.hasNextLine()){ //輸出文件的下一行 System.out.println(sc.nextLine()); } } }
上面程序因為涉及IO讀取,可能引發IO異常,所以程序聲明throws Exception表明main方法不處理任何異常。
感謝你能夠認真閱讀完這篇文章,希望小編分享的“Java中怎么使用Scanner類”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。