Java中怎么使用Scanner類

這篇文章主要介紹了Java中怎么使用Scanner類,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

創(chuàng)新互聯(lián)長(zhǎng)期為上千余家客戶提供的網(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è)提供專業(yè)的網(wǎng)站設(shè)計(jì)、成都網(wǎng)站設(shè)計(jì),雙陽(yáng)網(wǎng)站改版等技術(shù)服務(wù)。擁有十多年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開(kāi)發(fā)。

Scanner類用于獲取鍵盤輸入(是一個(gè)基于正則表達(dá)式的文本掃描器),它可以從文件、字符串、輸入流中解析出基本類型值和字符串值。Scanner類提供了多個(gè)構(gòu)造器,不同的構(gòu)造器可以接收文件、字符串和輸入流作為數(shù)據(jù)源,用于從文件、字符串和輸入流中解析數(shù)據(jù)。

Scanner類主要提供了兩個(gè)方法來(lái)掃描輸入:

hasNextXx():是否還有下一個(gè)輸入項(xiàng),其中Xxx可以是Int、Long等代表基本數(shù)據(jù)類型的字符串。如果只是判斷是否包含下一個(gè)字符串,則直接使用hasNext()。

nextXxx():獲取下一個(gè)輸入項(xiàng)。Xxx的含義同上。

默認(rèn)情況下,Scanner使用空白(包括空格、Tab空白和回車)作為多個(gè)輸入項(xiàng)的分隔符。

下面程序使用Scanner來(lái)獲得用戶的鍵盤輸入:

  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ì)通過(guò)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è)簡(jiǎn)單的逐行讀取的方法:

  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());
  }
  }
  }

上面程序通過(guò)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),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!

文章題目:Java中怎么使用Scanner類
文章鏈接:http://www.muchs.cn/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)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)