最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java中Scanner類使用保姆級教程

 更新時間:2023年04月26日 11:24:24   作者:努力努力再努力c.  
JavaSE在java.util類庫中提供了一個專門用于輸入操作的類Scanner類,可以使用該類創(chuàng)建一個對象,然后利用該對象的相關(guān)方法從鍵盤上讀取數(shù)據(jù),下面這篇文章主要給大家介紹了關(guān)于Java中Scanner類使用的相關(guān)資料,需要的朋友可以參考下

一、Scanner類簡介

Scanner類是在jdk1.5版本引入的,它在java的util工具包下,主要用于掃描用戶從控制臺輸入的文本。

當(dāng)我們需要通過控制臺輸入數(shù)據(jù)時,只需要事先導(dǎo)入java.util包中的Scanner類,然后調(diào)用Scanner類,我們的程序就能獲取我們在控制臺所輸入的數(shù)據(jù)了。

二、如何使用Scanner類

1、首先導(dǎo)入java.util.Scanner包;

import java.util.Scanner;

2、創(chuàng)建Scanner類對象

Scanner sc = new Scanner(System.in);

3、創(chuàng)建一個變量來接收輸入的數(shù)據(jù)

//運用上面創(chuàng)建的sc對象調(diào)用對應(yīng)的方法,控制臺即可等待用戶輸入,我們自定義一個變量來接收即可
//我們想要輸入的數(shù)據(jù)類型不同,也需要調(diào)用不同的方法,具體應(yīng)用如下:
String str = sc.nextLine();
String str = sc.next();
byte a1= sc.nextByte();
short a2= sc.nextShort();
int a3 = sc.nextInt();
long a4 = sc.nextLong();
float a5 = sc.nextFloat();
double a6 = sc.nextDouble();
boolean a7 = sc.nextBoolean();

4、關(guān)閉Scanner類

//使用完Scanner后,我們一定要記得將它關(guān)閉!
//因為使用Scanner本質(zhì)上是打開了一個IO流,如果不關(guān)閉的話,它將會一直占用系統(tǒng)資源。
sc.close();
//但是注意一旦你關(guān)閉后,就算在sc.close()這行代碼后你再重新new Scanner(System.in),那也不能重新再打開一個掃描器了,如下圖會發(fā)現(xiàn)程序會報錯
//所以大家一定要在用不到掃描器之后再關(guān)閉,即把sc.close()代碼放到最后。

三、next()和nextLine()的區(qū)別(很重要)

從上面的講解,我們會發(fā)現(xiàn)當(dāng)我們想要輸入的數(shù)據(jù)類型是String時,我們有兩個方法可以調(diào)用:next()和nextLine()。那這兩種方法具體有什么區(qū)別呢?我們繼續(xù)往下看:

(1)我們先來測試一下next():

使用多組測試用例測試后,分析輸出結(jié)果不難得出以下結(jié)論(這里只貼了經(jīng)典測試案例,其他的大家可以自行測試):

next()方法在識別輸入的字符串時,不能得到我們輸入的帶有空格的字符串,只是讀取到了hello。

這說明next()在讀取到有效字符之后會以空格作為自己的讀取結(jié)束標(biāo)識符,因為我們可以發(fā)現(xiàn)hello前面的空格并沒有影響到方法的讀取。所以next()用法總結(jié)如下:

next()用法總結(jié):
1. 一定要讀取到有效字符后才可以結(jié)束輸入。
2. 對輸入的有效字符之前所遇到的空白,會自動將其去除。
3. 只有輸入的有效字符后才將其后面輸入的空白作為結(jié)束符。
4. next()不能得到帶有空格的字符串。
5. 讀取結(jié)束后,該方法會將我們的鼠標(biāo)定位在我們輸入數(shù)據(jù)的那一行。

(2)再來測試一下nextLine():

分析結(jié)果發(fā)現(xiàn),輸入結(jié)果與輸入結(jié)果完全一致,nextLine()并沒有被字符串中間的空格影響讀取結(jié)果。

這是因為該方法以的是回車符(也就是我們鍵盤的enter鍵)作為結(jié)束標(biāo)識符。

nextLine()用法總結(jié):
1、以回車符作為結(jié)束標(biāo)識符,獲取到的是回車符前輸入的所有字符串(包括空格)。
2、讀取結(jié)束后,該方法會將我們的鼠標(biāo)定位在我們輸入數(shù)據(jù)的那一行的下一行。

(3)先使用nextLine再使用next()、nextInt()等沒問題,但是先使用next()和nextInt()等之后就不可以再緊跟nextLine使用。(這一點很重要?。。。?/h3>

這是因為next()等這些方法讀取結(jié)束后會緊跟一個回車符,而nextLine會直接讀取到這個回車符,這就導(dǎo)致出現(xiàn)我們還沒有來得及輸入我們想要輸入的數(shù)據(jù),nextLine就以為我們已經(jīng)輸入完了這樣的情況!

解決辦法也很簡單:我們直接在next()使用后加兩個nextLine()就OK了,這樣第一個nextLine()就會當(dāng)一個‘替死鬼’,第二個nextLine()我們就可以輸入自己想要輸入的數(shù)據(jù)啦!

四、hash×××()的簡單使用

我們發(fā)現(xiàn)Scanner類的實例變量還會有以hash開頭的一系列方法,那這些方法是干什么的呢?

我們直接上測試用例,大家直觀體會:

五、Scanner方法匯總

該圖的意思其實就是,比如:nextlnt():只能讀取int值,用戶如果輸入了其他非整型的數(shù)據(jù),程序就會報錯。

其他的如nextByte()、nextDouble()也是以此類推,只能讀取符合該類型的數(shù)據(jù),所以我們要根據(jù)我們輸入的數(shù)據(jù)來匹配對應(yīng)的方法。

總結(jié)

到此這篇關(guān)于Java中Scanner類使用保姆級教程的文章就介紹到這了,更多相關(guān)Java Scanner類使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 使用ServletInputStream在攔截器或過濾器中應(yīng)用后重寫

    使用ServletInputStream在攔截器或過濾器中應(yīng)用后重寫

    這篇文章主要介紹了使用ServletInputStream在攔截器或過濾器中應(yīng)用后重寫,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • maven項目打包如何去掉不需要的module

    maven項目打包如何去掉不需要的module

    文章總結(jié):在my-project工程依賴my-core和my-common,且my-project在總工程AAA中時,建議通過以下兩種方案優(yōu)化打包流程:1.?使用pom區(qū)分,重新編寫pom文件,并指定需要重新編譯的工程到modules中,然后在編譯時指定pom文件;
    2024-12-12
  • Java基礎(chǔ)概述面試題復(fù)習(xí)

    Java基礎(chǔ)概述面試題復(fù)習(xí)

    這篇文章主要介紹了java基礎(chǔ)面試題,文中的描述非常詳細,對正在學(xué)習(xí)java基礎(chǔ)的小伙伴們有非常好的幫助,需要的朋友可以參考下,希望能給你帶來幫助
    2021-08-08
  • Java中父類Object的常用方法總結(jié)

    Java中父類Object的常用方法總結(jié)

    這篇文章給大家介紹了Java中父類Object的三個常用方法,對大家學(xué)習(xí)或使用Java具有一定的參考借鑒價值,有需要的朋友們下面來一起看看吧。
    2016-09-09
  • JavaWeb連接數(shù)據(jù)庫MySQL的操作技巧

    JavaWeb連接數(shù)據(jù)庫MySQL的操作技巧

    數(shù)據(jù)庫是編程中重要的一部分,它囊括了數(shù)據(jù)操作,數(shù)據(jù)持久化等各方面。在每一門編程語言中都占有相當(dāng)大的比例。本次,小編以MySQL為例,使用mvc編程思想,給大家講解下javaweb對數(shù)據(jù)庫的操作
    2017-02-02
  • java處理數(shù)據(jù)庫不支持的emoji表情符問題解決

    java處理數(shù)據(jù)庫不支持的emoji表情符問題解決

    這篇文章主要介紹了java處理數(shù)據(jù)庫不支持的emoji表情符問題解決,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-09-09
  • 通過實例解析Spring Ioc項目實現(xiàn)過程

    通過實例解析Spring Ioc項目實現(xiàn)過程

    這篇文章主要介紹了Spring Ioc項目實踐過程詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-06-06
  • JavaWeb入門:HttpResponse和HttpRequest詳解

    JavaWeb入門:HttpResponse和HttpRequest詳解

    這篇文章主要介紹了Django的HttpRequest和HttpResponse對象,分享了相關(guān)代碼示例,小編覺得還是挺不錯的,具有一定借鑒價值,需要的朋友可以參考下
    2021-07-07
  • 一文帶你學(xué)會Java事件機制

    一文帶你學(xué)會Java事件機制

    今天小編就為大家分享一篇關(guān)于Java事件機制的文章,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2021-10-10
  • Java實現(xiàn)對象復(fù)制的方法實例

    Java實現(xiàn)對象復(fù)制的方法實例

    這篇文章主要介紹了Java實現(xiàn)對象復(fù)制的方法實例,深復(fù)制:復(fù)制出來的對象中的變量(包括基本類型和字符串)和原來的對象的值都相同,引用對象也會指向復(fù)制出來的對象,需要的朋友可以參考下
    2023-08-08

最新評論

日土县| 闵行区| 宿州市| 新野县| 东平县| 隆德县| 湘潭县| 多伦县| 富源县| 黑河市| 西乡县| 阳春市| 满洲里市| 微博| 正阳县| 蒙阴县| 怀集县| 涿州市| 敖汉旗| 珲春市| 九寨沟县| 莱州市| 丘北县| 阜南县| 广州市| 金阳县| 兴安县| 高州市| 武城县| 舒城县| 林甸县| 同德县| 广东省| 武夷山市| 昆山市| 宝清县| 桐梓县| 许昌市| 迁西县| 靖远县| 尼玛县|