欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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)文章

  • Spring MVC實現(xiàn)文件上傳及優(yōu)化案例解析

    Spring MVC實現(xiàn)文件上傳及優(yōu)化案例解析

    本文介紹如何在SpringMVC框架中實現(xiàn)文件上傳和異步登錄功能,通過添加必要的依賴和配置,創(chuàng)建文件上傳頁面和控制器,實現(xiàn)文件上傳到指定文件夾,同時,展示了如何使用AJAX實現(xiàn)局部刷新的異步登錄,優(yōu)化用戶體驗,詳細步驟包括配置springmvc.xml、編寫前端頁面和控制器等
    2024-10-10
  • java中的IO流

    java中的IO流

    這篇文章主要介紹了java中的IO流的相關(guān)資料,需要的朋友可以參考下文
    2021-08-08
  • PowerJob Alarmable工作流程源碼剖析

    PowerJob Alarmable工作流程源碼剖析

    這篇文章主要為大家介紹了PowerJob Alarmable工作流程源碼剖析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2024-01-01
  • 常見的java面試題

    常見的java面試題

    這篇文章主要為大家詳細介紹了常見的java面試題,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-11-11
  • Java?Spring?boot?配置JDK和MAVEN開發(fā)環(huán)境的過程

    Java?Spring?boot?配置JDK和MAVEN開發(fā)環(huán)境的過程

    本文詳細介紹了如何配置JDK和Maven環(huán)境,包括JDK的安裝與環(huán)境變量設(shè)置,Maven的下載、配置環(huán)境變量和設(shè)置阿里云倉庫,最后簡述了在IntelliJ?IDEA中配置JDK和Maven的步驟,本教程適合Java開發(fā)新手進行開發(fā)環(huán)境的搭建,確保順利進行Java項目的開發(fā)
    2024-11-11
  • SSM 整合的配合文件(分享)

    SSM 整合的配合文件(分享)

    下面小編就為大家分享一篇SSM 整合的配合文件,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2017-12-12
  • LocalDateTime日期時間格式中間多了一個T的問題及解決

    LocalDateTime日期時間格式中間多了一個T的問題及解決

    這篇文章主要介紹了LocalDateTime日期時間格式中間多了一個T的問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • Java泛型定義與用法實例詳解

    Java泛型定義與用法實例詳解

    這篇文章主要介紹了Java泛型定義與用法,結(jié)合實例形式較為詳細的分析了Java中泛型的概念、原理、定義、使用方法及相關(guān)操作注意事項,需要的朋友可以參考下
    2018-08-08
  • Java程序執(zhí)行的全流程

    Java程序執(zhí)行的全流程

    這篇文章主要介紹了Java程序執(zhí)行的全流程,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • 小議Java中final關(guān)鍵字使用時的注意點

    小議Java中final關(guān)鍵字使用時的注意點

    final關(guān)鍵字代表著最后、不可改變,無論是在用final修飾類、修飾方法還是修飾變量時,都要注意內(nèi)存分配的問題.這里來小議Java中final關(guān)鍵字使用時的注意點:
    2016-06-06

最新評論