新聞中心
這篇文章主要介紹了Java中怎么使用Scanner類,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
Scanner類用于獲取鍵盤輸入(是一個(gè)基于正則表達(dá)式的文本掃描器),它可以從文件、字符串、輸入流中解析出基本類型值和字符串值。Scanner類提供了多個(gè)構(gòu)造器,不同的構(gòu)造器可以接收文件、字符串和輸入流作為數(shù)據(jù)源,用于從文件、字符串和輸入流中解析數(shù)據(jù)。
Scanner類主要提供了兩個(gè)方法來掃描輸入:
hasNextXx():是否還有下一個(gè)輸入項(xiàng),其中Xxx可以是Int、Long等代表基本數(shù)據(jù)類型的字符串。如果只是判斷是否包含下一個(gè)字符串,則直接使用hasNext()。
nextXxx():獲取下一個(gè)輸入項(xiàng)。Xxx的含義同上。
默認(rèn)情況下,Scanner使用空白(包括空格、Tab空白和回車)作為多個(gè)輸入項(xiàng)的分隔符。
下面程序使用Scanner來獲得用戶的鍵盤輸入:
public class Test{ public static void main(String[] args){ //System.in代表鍵盤輸入 Scanner sc = new Scanner(System.in); //下面這行代碼是把回車作為分隔符 sc.useDelimiter("n"); //判斷是否還有下一個(gè)輸入項(xiàng) while(sc.hasNext()){ //輸出輸入項(xiàng) System.out.println("鍵盤輸入的內(nèi)容是:"+sc.next()); } } }
運(yùn)行上面的程序,程序會(huì)通過Scanner不斷的從鍵盤讀取鍵盤輸入,然后打印到控制臺(tái),程序運(yùn)行效果如下:
java
鍵盤輸入的內(nèi)容是:java
c++
鍵盤輸入的內(nèi)容是:c++
html
鍵盤輸入的內(nèi)容是:html
為Scanner設(shè)置分隔符使用 useDelimiter(String pattern)方法即可,該方法的參數(shù)是一個(gè)正則表達(dá)式(后面發(fā)布內(nèi)容會(huì)介紹到),如果把上面程序這一行sc.useDelimiter("\n")注釋掉,該程序就會(huì)把鍵盤的每行輸入當(dāng)成一個(gè)輸入項(xiàng),不會(huì)以空格、Tab空白或回車等作為分隔符。
其實(shí),Scanner提供了兩個(gè)簡單的逐行讀取的方法:
boolean hasNextLine():返回輸入源中是否還有下一行。 String nextLine():返回輸入源中下一行的字符串。 Scanner除了可以獲取字符串輸入項(xiàng)之外,還可以獲取任意基本類型的輸入項(xiàng),如下程序: public class Test{ public static void main(String[] args){ //System.in代表鍵盤輸入 Scanner sc = new Scanner(System.in); //判斷是否還有下一個(gè)long型整數(shù) while(sc.hasNextlong()){ //輸出輸入項(xiàng) System.out.println("鍵盤輸入的內(nèi)容是:"+sc.nextlong()); } } }
上面程序通過hasNextLong()和nextLong()兩個(gè)方法可以直接獲取輸入的Long型整數(shù),如果需要獲取其它基本類型的輸入項(xiàng),則可以用相同的方法。
Scanner除了能讀取鍵盤輸入外,還可以讀取文件輸入。只要在創(chuàng)建Scanner對(duì)象時(shí)傳入一個(gè)File對(duì)象作為參數(shù)即可,例如下面的示例:
public class Test{ public static void main(String[] args) throws Exception{ //Scanner讀取文件內(nèi)容:將一個(gè)File對(duì)象作為Scanner的構(gòu)造器參數(shù) Scanner sc = new Scanner(new File("Test.java")); System.out.println("Test.java文件內(nèi)容如下:"); //判斷是否還有下一行 while(sc.hasNextLine()){ //輸出文件的下一行 System.out.println(sc.nextLine()); } } }
上面程序因?yàn)樯婕癐O讀取,可能引發(fā)IO異常,所以程序聲明throws Exception表明main方法不處理任何異常。
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“Java中怎么使用Scanner類”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司,,關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來學(xué)習(xí)!
新聞標(biāo)題:Java中怎么使用Scanner類-創(chuàng)新互聯(lián)
本文路徑:http://www.dlmjj.cn/article/dggjce.html