跟我學java編程—Java的Scanner類

2021-01-07 米粒教育

當程序需要從鍵盤獲取用戶輸入的命令或數據時,例如:獲取用戶輸入的計算表達式。可以通過Scanner類方便地獲取用戶輸入。

通過Scanner類獲取用戶輸入時,控制臺會一直等待用戶的輸入,直到用戶敲回車鍵結束,把所輸入的內容傳給Scanner,程序要從Scanner獲取輸入的內容,則只需要調用Scanner的nextLine()方法即可。

Scanner類的初始化

聲明一個scanner變量,並用new運算符實例化Scanner,實例化Scanner時,需要傳入System.in對象,Scanner通過傳入的System.in獲取用戶輸入,並對用戶輸入的字符進行處理,屏蔽了獲取用戶輸入的複雜操作。

Scanner scanner = new Scanner(System.in);

示例1:Scanner類的初始化

在D盤Java目錄下,新建「ScannerInitSample.java」文件。用記事本打開「ScannerInitSample.java」文件,輸入以下代碼:

代碼結構分析

程序功能主要是演示Scanner如何聲明及初始化。

語句「import java.util.*;」,用於導入包含Scanner的類庫,Scanner包含在Java 核心類庫util中,要使用Scanner類,必須導入java.util庫,類庫導入關鍵字為import。

編譯「ScannerInitSample.java」文件,在命令行窗口輸入「javac ScannerInitSample.java」並執行命令,編譯通過後,在命令行窗口輸入「java ScannerInitSample」運行Java程序,命令行窗口顯示如下信息:

圖 5-12 Scanner初始化執行結果

Scanner類的方法

Scanner類提供了多個方法,用於完成字符串的輸入。下面列舉了幾個主要的操作方法,其它方法請參考Java API:

(1)方法名稱:next()

方法說明:返回由輸入設備輸入的有效字符,返回類型為字符串。該方法一定要讀取到有效字符後才能返回。

方法示例:

Scanner sc = new Scanner(System.in);

String szWelcome = sc.next();

(2)方法名稱:nextLine()

方法說明:返回由輸入設備輸入的字符串,返回類型為字符串。該方法以用戶按下回車鍵(Enter)結束當前輸入。

方法示例:

Scanner sc = new Scanner(System.in);

String szWelcome = sc. nextLine() ;

示例2:Scanner類的輸入操作

在D盤Java目錄下,新建「ScannerInputSample.java」文件。用記事本打開「ScannerInputSample.java」文件,輸入以下代碼:

代碼結構分析

程序功能主要是演示Scanner的next和nextLine輸入方法的區別。

語句「import java.util.*;」,用於導入包含Scanner的類庫,Scanner包含在Java 核心類庫util中,要使用Scanner類,必須導入java.util庫,類庫導入關鍵字為import。

語句「String tempValue = sc.nextLine();」,通過nextLine方法獲取用戶輸入,用戶按下回車鍵(Enter),nextLine返回按下回車鍵前所有輸入的字符。

語句「tempValue = sc.next();」,通過next方法獲取用戶輸入,用戶按下回車鍵(Enter),next返回過濾空格後的字符串。

編譯「ScannerInputSample.java」文件,在命令行窗口輸入「javac ScannerInputSample.java」並執行命令,編譯通過後,在命令行窗口輸入「java ScannerInputSample」運行Java程序,命令行窗口顯示如下信息:

圖 5-13 Scanner類的輸入操作執行結果

從上述結果可以看出,nextLine返回按下回車鍵前輸入的所有字符,包括空格;next則返回過濾掉空格後的字符串。

Scanner僅是簡化了文本的輸入,Scanner通過傳入的InputStream從鍵盤獲取用戶輸入的字符串,然後對字符進行相應處理並返回。

編寫一個程序,應用Scanner的next和nextLine方法獲取用戶輸入的字符串,辨別兩種輸入方法的不同之處。

相關焦點

  • java.util.Scanner的幾種next方法
    java.util.Scanner,這個類,想必大家都不怎麼陌生,在初學Java這門程式語言時,都見過,使用過吧。今天就來說說java.util.Scanner類的幾種next方法。scanner.next()方法先看看scanner.next()的使用以及效果吧。如上圖代碼以及執行結果所示,scanner.next()這個方法會忽略掉輸入有效字符前面的空格,輸入內容中遇到空格後,從空格開始往後的內容就都不作為掃描結果了。
  • 跟我學java編程—Java字符串類型
    例如:「I want to learn Java programming」、「我要學Java編程」、「3+5=8」、「abc」等等。四則運算器程序需要存儲用戶輸入的計算表達式,計算表達式由多個字符組合而成,用前面所掌握的Java數據類型,不適合存儲計算表達式。程序需要一個新的類型來存儲計算表達式,這個新的類型就是字符串類型。
  • Java之 Scanner類
    Scanner 類java.util.Scanner 是 Java5 的新特徵,我們可以通過 Scanner 類來獲取用戶的輸入,並通過 Scanner 類的 next() 與 nextLine() 方法獲取輸入的字符串,在讀取前我們一般需要 使用 hasNext 與 hasNextLine 判斷是否還有輸入的數據。
  • 跟我學java編程—理解Java包的概念
    對應文件目錄hello下的HelloWorld.java。例如:數學計算包名可以命名「math」,再如,繪圖包可以命名「drawing」;為了使用不在同一個包中的類,需要在java程序使用import關鍵字導入這個類,前面的例子經常使用Scanner類獲取用戶的輸入,Scanner類包含在Java 核心類庫util包中,因此程序要使用Scanner類,就需要導入util包,導入util包語句如下:
  • 跟我學java編程—Java表達式
    2其中,a、b、2為操作數,a和b為變量,2為數值常量,+為運算符② 『a』 + 3其中,『a』為字符常量,參與計算時其數值為該字符所在字符集的編碼值,『a』為ASCII嗎是,表達式『a』 + 3等同於97+3③ 「study」 + 「java
  • 跟我學java編程—Java的格式化輸出
    示例1:一個簡單格式化輸出的例子在D盤Java目錄下,新建「PrintfSample.java」文件。編譯「PrintfSample.java」文件,在命令行窗口輸入「javac PrintfSample.java」並執行命令,編譯通過後,在命令行窗口輸入「java PrintfSample」運行Java程序,命令行窗口顯示如下信息: 圖 5—8 簡單格式化輸出執行結果從運行結果可以看出,printf方法可以控制浮點數小數位數的輸出
  • 跟我學java編程—Java多重if結構
    在編程時遇到此種情況,則可使用多重if結構解決。多重if結構實際上if-else結構的另一種形式;if-else-if,這種形式也稱為階梯式,當有多個分支選擇時,可採用多重if結構。在D盤Java目錄下,新建「MuiltIfSample.java」文件。用記事本打開「MuiltIfSample.java」文件,輸入以下代碼:代碼結構分析程序功能主要是演示多重if結構的使用。
  • 跟我學java編程—Java邏輯運算符
    示例1:邏輯運算符在D盤Java目錄下,新建「LogicSample.java」文件。用記事本打開「LogicSample.java」文件,輸入以下代碼:代碼結構分析程序功能主要是演示邏輯運算符的用法。類似語句「bJudge = !
  • 跟我學java編程—Java簡單條件結構
    然後用Scanner類的nextInt方法獲取用戶的輸入的兩個數值,兩個數值相加後存儲在sum中,然後通過if語句判斷sum>100是否成立,如果條件成立,程序輸出「兩數和大於100」。如果為假,程序結束,什麼也不顯示。
  • 跟我學java編程—Java算術運算符
    示例1:加減乘除操作符運算在D盤Java目錄下,新建「OperationSample.java」文件。編譯「OperationSample.java」文件,在命令行窗口輸入「javac OperationSample.java」並執行命令,編譯通過後,在命令行窗口輸入「java OperationSample」運行Java程序,命令行窗口顯示如下信息:
  • 跟我學java編程—Java嵌套if
    在D盤Java目錄下,新建「EmbedSample.java」文件。用記事本打開「EmbedSample.java」文件,輸入以下代碼:代碼結構分析程序功能主要是演示嵌套if結構的使用。編譯「EmbedSample.java」文件,在命令行窗口輸入「javac EmbedSample.java」並執行命令,編譯通過後,在命令行窗口輸入「java EmbedSample」運行Java程序,命令行窗口顯示如下信息:
  • 跟我學java編程—Java跳轉語句—break語句
    示例1:使用break語句退出循環在D盤Java目錄下,新建「BreakSample1.java」文件。用記事本打開「BreakSample1.java」文件,輸入以下代碼:代碼結構分析程序功能主要是演示break語句的使用。
  • 跟我學java編程—Set接口實現類TreeSet
    前面兩節分別介紹了Set接口的實現類HashSet和LinkedHashSet類。本節介紹TreeSet類。圖 14-7 MainTest程序輸出結果從輸出結果可以看出,程序拋出「Exception in thread "main" java.lang.ClassCastException
  • 跟我學java編程—Java while循環語句
    編譯「LoopSample1.java」文件,在命令行窗口輸入「javac LoopSample1.java」並執行命令,編譯通過後,在命令行窗口輸入「java LoopSample1」運行Java程序,命令行窗口顯示如下信息:
  • java編程從入門到放棄?關於Java自學,我的3點思考
    2、如何自學java?有了堅定的學習信念後,咱們再來說怎麼學。網上Java學習的資料多如牛毛,但我們首先要有個清晰的學習思路。我個人覺得java學習大致可以按這3個階段來:第一階段:基礎課程學習包含Java開發介紹、Java數組、Java面向對象、常用基礎類、集合、IO流、多線程、異常、反射等;
  • 跟我學java編程—Java條件運算符
    在D盤Java目錄下,新建「TaxSample.java」文件。用記事本打開「TaxSample.java」文件,輸入以下代碼:代碼結構分析程序功能主要是演示條件運算符的使用。編譯「TaxSample.java」文件,在命令行窗口輸入「javac TaxSample.java」並執行命令,編譯通過後,在命令行窗口輸入「java TaxSample」運行Java程序,命令行窗口顯示如下信息:
  • 跟我學java編程—認識java語言的字符類型
    用記事本打開「CharSample.java」文件,輸入以下代碼:編譯「CharSample.java」文件,在命令行窗口輸入「javac CharSample.java」並執行命令,編譯通過後,在命令行窗口輸入「java CharSample」運行Java程序,命令行窗口顯示如下信息:
  • 跟我學java編程—Java的switch結構
    在D盤Java目錄下,新建「CaseSample.java」文件。用記事本打開「CaseSample.java」文件,輸入以下代碼:代碼結構分析程序功能主要是演示switch結構的使用。編譯「CaseSample.java」文件,在命令行窗口輸入「javac CaseSample.java」並執行命令,編譯通過後,在命令行窗口輸入「java CaseSample」運行Java程序,命令行窗口顯示如下信息:
  • 學好java,掌握java編程思想很重要!學習java分三步
    浮雲我是一個剛剛畢業的大學生,專業是學的java,但是由於在大學時期貪玩,打遊戲,導致專業技術不過關,因此,在做了一番思想鬥爭過後,我決定了在我所在的城市找了一個培訓學校,所以我也就從頭學習java了。
  • Java入門學習全套教程(來源:菜鳥教程)
    /java-number.htmlJava Character 類http://www.runoob.com/java/java-character.htmlJava String 類http://www.runoob.com/java/java-string.htmlJava StringBuffer 和 StringBuilder