詳解JAVA代碼中的Scanner類—從控制臺輸入數據

2020-10-20 波波說運維

概述

我們一般使用System.out.println("") 向控制臺輸出數據,如果要從控制臺輸入數據,需用到Scanner類

Java 5添加了java.util.Scanner類,這是一個用於掃描輸入文本的新的實用程序。它是以前的StringTokenizer和Matcher類之間的某種結合。由於任何數據都必須通過同一模式的捕獲組檢索或通過使用一個索引來檢索文本的各個部分。於是可以結合使用正則表達式和從輸入流中檢索特定類型數據項的方法。這樣,除了能使用正則表達式之外,Scanner類還可以任意地對字符串和基本類型(如int和double)的數據進行分析。藉助於Scanner,可以針對任何要處理的文本內容編寫自定義的語法分析器。

默認情況下,Scanner以空格和換行(空格鍵、Tab鍵、Enter鍵)作為分隔符。


一、使用Scanner讀取整數

import java.util.Scanner;public class HelloScanner { public static void main(String[] args) { int sum; Scanner s = new Scanner(System.in); int a = s.nextInt(); System.out.println("第一個整數: " +a); int b = s.nextInt(); System.out.println("第二個整數:" +b); sum = a+b; System.out.println("求和:" +sum); }}



二、使用scanner讀取浮點數

import java.util.Scanner;public class HelloScanner { public static void main(String[] args) { //scanner讀取整數 int sum; Scanner s = new Scanner(System.in); int a = s.nextInt(); System.out.println("第一個整數: " +a); int b = s.nextInt(); System.out.println("第二個整數:" +b); sum = a+b; System.out.println("求和:" +sum); //scanner讀取浮點數 Scanner sf = new Scanner(System.in); float c = sf.nextFloat(); System.out.println("讀取的浮點數的值是:" +c); }}



三、使用scanner讀取字符串

//scanner讀取字符串Scanner ss = new Scanner(System.in);String d = ss.nextLine();System.out.println("讀取的字符串是:"+d);



四、讀取整數後讀字符串

如果在通過nextInt()讀取了整數後,再接著讀取字符串,讀出來的是回車換行:"\r\n",因為nextInt僅僅讀取數字信息,而不會讀取回車換行"\r\n".

所以,如果在業務上需要讀取了整數後,接著讀取字符串,那麼就應該連續執行兩次nextLine(),第一次是取走回車換行,第二次才是讀取真正的字符串

//scanner讀取整數後讀取字符串Scanner sn = new Scanner(System.in);int e = sn.nextInt();System.out.println("讀取整數是:"+e);String f = sn.nextLine();String g = sn.nextLine();System.out.println("讀取字符串是:"+f);System.out.println("讀取字符串是:"+g);



》》最終代碼

import java.util.Scanner;public class HelloScanner { public static void main(String[] args) { //scanner讀取整數 System.out.println("》》》scanner讀取整數《《《"); int sum; Scanner s = new Scanner(System.in); int a = s.nextInt(); System.out.println("第一個整數: " +a); int b = s.nextInt(); System.out.println("第二個整數:" +b); sum = a+b; System.out.println("求和:" +sum); //scanner讀取浮點數 System.out.println("》》》scanner讀取浮點數《《《"); Scanner sf = new Scanner(System.in); float c = sf.nextFloat(); System.out.println("讀取的浮點數的值是:" +c); //scanner讀取字符串 System.out.println("》》》scanner讀取字符串《《《"); Scanner ss = new Scanner(System.in); String d = ss.nextLine(); System.out.println("讀取的字符串是:"+d); //scanner讀取整數後讀取字符串 System.out.println("》》》scanner讀取整數後讀取字符串《《《"); Scanner sn = new Scanner(System.in); int e = sn.nextInt(); System.out.println("讀取整數是:"+e); String f = sn.nextLine(); String g = sn.nextLine(); System.out.println("讀取字符串是:"+f); System.out.println("讀取字符串是:"+g); }}


這個類還是比較有用的,大家也可以自己測試玩一下~


相關焦點

  • 跟我學java編程—Java的Scanner類
    當程序需要從鍵盤獲取用戶輸入的命令或數據時,例如:獲取用戶輸入的計算表達式。可以通過Scanner類方便地獲取用戶輸入。通過Scanner類獲取用戶輸入時,控制臺會一直等待用戶的輸入,直到用戶敲回車鍵結束,把所輸入的內容傳給Scanner,程序要從Scanner獲取輸入的內容,則只需要調用Scanner的nextLine()方法即可。
  • Java中Scanner類的簡單使用
    Scanner是一個新的操作類,是在java.util包中提供的一個操作類,使用此類可以方便的完成輸入流的輸入操作。一個可以解析基本類型和字符串的簡單文本掃描器。例如,以下代碼使用戶能夠從 System.in 中讀取一個數:public class ApiScanner { public static void main(String[] args) { //創建對象接收鍵盤錄入的數據 Scanner sc = new Scanner(System.in);//創建一個scanner類的對象
  • java.util.Scanner的幾種next方法
    java.util.Scanner,這個類,想必大家都不怎麼陌生,在初學Java這門程式語言時,都見過,使用過吧。今天就來說說java.util.Scanner類的幾種next方法。scanner.next()方法先看看scanner.next()的使用以及效果吧。如上圖代碼以及執行結果所示,scanner.next()這個方法會忽略掉輸入有效字符前面的空格,輸入內容中遇到空格後,從空格開始往後的內容就都不作為掃描結果了。
  • Java之 Scanner類
    Scanner 類java.util.Scanner 是 Java5 的新特徵,我們可以通過 Scanner 類來獲取用戶的輸入,並通過 Scanner 類的 next() 與 nextLine() 方法獲取輸入的字符串,在讀取前我們一般需要 使用 hasNext 與 hasNextLine 判斷是否還有輸入的數據。
  • java中的Scanner類
    Scanner類,是一個可以解析基本類型和字符串的簡單文本掃描器,能夠通過從 System.in 中讀取鍵盤錄入的數據。分析步驟導包:使用import關鍵字導包,在類的所有代碼之前導包,引入要使用的類型,java.lang包下的所有類無需導入。2.創建對象:使用該類的構造方法,創建一個該類的對象。
  • 初學者學習Java代碼
    其實我學習java最根本的原因是:我是一個挺關注外在的人,雖然是個程式設計師,所以我很喜歡寫出那些帶有漂亮的界面的程序,因為C總是控制臺,我不是很喜歡,在這份java代碼合集中,我會記錄自己學習Java界面化編程的點點滴滴。更新:因為C/C++是我主要使用語言,所有後來寫界面主要用Qt寫了,但我java也會繼續學的。我只是給想學界面gui的同志一個思路。
  • java之Scanner類的簡單介紹
    各位小夥伴們大家好,這次小編要介紹的是Scanner,它可以實現從鍵盤輸入數據到程序中。Scanner是一個引用類型,接下來小編就簡單介紹引用類型通常情況下的使用步驟。第一步,導包格式:import 包路徑.類名稱;如果需要使用的目標類,和當前類位於同一個包下,則可以省略導包語句不寫。另外,只有java.lang包下的內容不需要導包,其他的包都需要import語句。
  • 這些Java中的流程控制知識你都不知道,你憑什麼漲薪?
    ,但是Java給我們提供了這樣一個工具類,我們可以獲取用戶的輸入。Java.util.Scanner是Java5的新特徵,我們可以通過Scanner類來獲取用戶的輸入。基本語法:Scanner s = new Scanner(System.in);通過Scanner類的next()與nextLine()方法獲取輸入的字符串,在讀取前我們一般需要使用hasNext()與hasNextLine()判斷是否還有輸入的數據。
  • 詳解Java網絡編程
    與客戶端建立連接後,通過輸入流讀取客戶端發送的請求信息,然後通過輸出流向客戶端發送響應信息,最後關閉socket及相關資源。案例1:編寫一個TCP服務端程序。建立TcpServer類,在TcpServer類中創建套接字,偵聽指定的埠,等待連接請求。
  • Java - 詳解輸入輸出流
    Stream:Java 中將數據的輸入輸出抽象為流,流是一組有順序的,單向的,有起點和終點的數據集合,就像水流。按照流中的最小數據單元又分為字節流和字符流。1,字節流:以 8 位(即 1 byte,8 bit)作為一個數據單元,數據流中最小的數據單元是字節。
  • 跟我學java編程—Java的標準輸出
    在初步了解計算機系統一節,描述了計算機系統由運算器、存儲器、控制器、輸入裝置和輸出裝置五大基本部件組成。其中輸入裝置和輸出裝置在不同的計算機系統中有不同的輸入和輸出設備相對應。例如:在工業自動化控制系統中,輸入設備是眾多的傳感器,用於採集實時信號和數據,輸出設備可能是儀表、顯示器、繼電器等;在計算機信息管理系統中,輸入設備可能是鍵盤、掃描儀、以及任何可以讀取數據的設備,輸出設備可以是顯示器、印表機、手機屏幕等。
  • Java基礎之API、String、ArrayList詳解
    中的API提前定義好的一些java類。鍵盤錄入一個字符串,調用該方法後,在控制臺輸出結果例如,鍵盤錄入 abc,輸出結果 cba代碼package com.mnyketang;import java.util.Scanner;/*    需求 定義一個方法
  • Eclipse新建JavaWeb工程實例詳解
    Eclipse新建JavaWeb工程實例詳解1.在Package Explorer中右鍵新建Dynamic Web Project2.創建工程名稱,選擇Target runtime 也就是Tomcat的版本(注意,這個必須選擇,因為你的Web工程是運行在Tomcat
  • mybatisplus自動1秒一鍵生成代碼,這次是真的起飛了
    可以自定義生成文件,比如form實體類和VO實體類 List<FileOutConfig> focList = new ArrayList<>();// 自定義生成文件 focList.add(new FileOutConfig("/templates/entityForm.java.ftl
  • 詳解java中的緩衝流、轉換流、序列化流
    OutputStreamWriter類轉換流 java.io.OutputStreamWriter ,是Writer的子類,用指定的字符集將字符編碼為字節。它的字符集可以自定義,也可以用平臺的默認字符集。
  • Java之字符輸入流,Reader類的簡單介紹
    各位小夥伴們大家好,在之前的文章中,小編介紹了Java之文件複製的簡單介紹,多是一些關於字節的知識,這次小編要介紹的是字符輸入流Reader類,具體如下:java.io.Reader:字符輸入流,是字符輸入流的最頂層的父類,定義了一些共性的成員方法,是一個抽象類共性成員方法:int read()讀取當個字節並返回。
  • 你可能知道java代碼編寫規範,但是你知道Javadoc文檔注釋規範嗎?
    通常我們需要引入jdk裡面的類,我們可以在sun官網,查找JDK文檔,來查看所有JDK內置的類。上面我們用到的Date類是位於java.util這個路徑下面的。System.out.println()這個方法主要用來列印數據到控制臺,而且列印完了後換行。
  • 跟我學java編程—Java的標準輸入
    Java的標準輸入指到能夠連接到計算機系統的鍵盤設備或其它字符輸入終端。Java核心類System類成員屬性in完成從標準設備獲取用戶輸入的功能,in的類型為InputStream,InputStream類主要用於從不同的輸入源獲取用戶的輸入數據,也包括鍵盤或其它字符輸入終端。
  • java基礎-遇見ArrayList集合
    ,存儲3個字符串元素,使用程序實現在控制臺遍歷該集合代碼演示:/*思路: 1:創建集合對象 2:往集合中添加字符串對象 3:遍歷集合,首先要能夠獲取到集合中的每一個元素,這個通過get(int index)方法實現 4:遍歷集合,其次要能夠獲取到集合的長度,這個通過size()方法實現 5:遍歷集合的通用格式