這篇文章主要介紹了Java中怎么使用Scanner類(lèi),具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
創(chuàng)新互聯(lián)長(zhǎng)期為上千余家客戶(hù)提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開(kāi)放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為雙陽(yáng)企業(yè)提供專(zhuān)業(yè)的網(wǎng)站設(shè)計(jì)、成都網(wǎng)站設(shè)計(jì),雙陽(yáng)網(wǎng)站改版等技術(shù)服務(wù)。擁有十多年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開(kāi)發(fā)。
Scanner類(lèi)用于獲取鍵盤(pán)輸入(是一個(gè)基于正則表達(dá)式的文本掃描器),它可以從文件、字符串、輸入流中解析出基本類(lèi)型值和字符串值。Scanner類(lèi)提供了多個(gè)構(gòu)造器,不同的構(gòu)造器可以接收文件、字符串和輸入流作為數(shù)據(jù)源,用于從文件、字符串和輸入流中解析數(shù)據(jù)。
Scanner類(lèi)主要提供了兩個(gè)方法來(lái)掃描輸入:
hasNextXx():是否還有下一個(gè)輸入項(xiàng),其中Xxx可以是Int、Long等代表基本數(shù)據(jù)類(lèi)型的字符串。如果只是判斷是否包含下一個(gè)字符串,則直接使用hasNext()。
nextXxx():獲取下一個(gè)輸入項(xiàng)。Xxx的含義同上。
默認(rèn)情況下,Scanner使用空白(包括空格、Tab空白和回車(chē))作為多個(gè)輸入項(xiàng)的分隔符。
下面程序使用Scanner來(lái)獲得用戶(hù)的鍵盤(pán)輸入:
public class Test{ public static void main(String[] args){ //System.in代表鍵盤(pán)輸入 Scanner sc = new Scanner(System.in); //下面這行代碼是把回車(chē)作為分隔符 sc.useDelimiter("n"); //判斷是否還有下一個(gè)輸入項(xiàng) while(sc.hasNext()){ //輸出輸入項(xiàng) System.out.println("鍵盤(pán)輸入的內(nèi)容是:"+sc.next()); } } }
運(yùn)行上面的程序,程序會(huì)通過(guò)Scanner不斷的從鍵盤(pán)讀取鍵盤(pán)輸入,然后打印到控制臺(tái),程序運(yùn)行效果如下:
java
鍵盤(pán)輸入的內(nèi)容是:java
c++
鍵盤(pán)輸入的內(nèi)容是:c++
html
鍵盤(pán)輸入的內(nèi)容是:html
為Scanner設(shè)置分隔符使用 useDelimiter(String pattern)方法即可,該方法的參數(shù)是一個(gè)正則表達(dá)式(后面發(fā)布內(nèi)容會(huì)介紹到),如果把上面程序這一行sc.useDelimiter("\n")注釋掉,該程序就會(huì)把鍵盤(pán)的每行輸入當(dāng)成一個(gè)輸入項(xiàng),不會(huì)以空格、Tab空白或回車(chē)等作為分隔符。
其實(shí),Scanner提供了兩個(gè)簡(jiǎn)單的逐行讀取的方法:
boolean hasNextLine():返回輸入源中是否還有下一行。 String nextLine():返回輸入源中下一行的字符串。 Scanner除了可以獲取字符串輸入項(xiàng)之外,還可以獲取任意基本類(lèi)型的輸入項(xiàng),如下程序: public class Test{ public static void main(String[] args){ //System.in代表鍵盤(pán)輸入 Scanner sc = new Scanner(System.in); //判斷是否還有下一個(gè)long型整數(shù) while(sc.hasNextlong()){ //輸出輸入項(xiàng) System.out.println("鍵盤(pán)輸入的內(nèi)容是:"+sc.nextlong()); } } }
上面程序通過(guò)hasNextLong()和nextLong()兩個(gè)方法可以直接獲取輸入的Long型整數(shù),如果需要獲取其它基本類(lèi)型的輸入項(xiàng),則可以用相同的方法。
Scanner除了能讀取鍵盤(pán)輸入外,還可以讀取文件輸入。只要在創(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類(lèi)”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!
文章題目:Java中怎么使用Scanner類(lèi)
文章鏈接:http://jinyejixie.com/article6/ghocig.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站、動(dòng)態(tài)網(wǎng)站、App開(kāi)發(fā)、品牌網(wǎng)站設(shè)計(jì)、搜索引擎優(yōu)化、定制網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)