Java中Scanner用法實(shí)例解析
一、Scanner類(lèi)簡(jiǎn)介
Java 5添加了java.util.Scanner類(lèi),這是一個(gè)用于掃描輸入文本的新的實(shí)用程序。
簡(jiǎn)介
Scanner類(lèi)是java.util包中的一個(gè)類(lèi)
作用
常用于控制臺(tái)的輸入,當(dāng)需要使用控制臺(tái)輸入時(shí)即可調(diào)用這個(gè)類(lèi)
二、Scanner類(lèi)的用法
使用方法
1、首先需要構(gòu)造一個(gè)Scanner類(lèi)的對(duì)象,并且與標(biāo)準(zhǔn)輸入流System.in關(guān)聯(lián)
Scanner sc=new Scanner(System.in);
2、調(diào)用Scanner類(lèi)對(duì)象sc的方法從輸入流中獲取你需要的輸入
說(shuō)明:
當(dāng)創(chuàng)建了一個(gè)Scanner類(lèi)對(duì)象之后,控制臺(tái)會(huì)一直等待輸入,直到敲回車(chē)鍵結(jié)束,把所輸入的內(nèi)容傳給對(duì)象sc,若要獲取需要的內(nèi)容,調(diào)用sc的方法即可
三、常用方法
1、nextInt()只讀取數(shù)值,讀取完后 沒(méi)有讀取并且光標(biāo)放在本行
Scanner sc=new Scanner(System.in); int i=sc.nextInt();
每次可以只輸入一個(gè)數(shù)字,回車(chē)確認(rèn),例如:“123”,只能被一個(gè)nextInt讀取。
也可以輸入一組數(shù)字,例如:“123 456 789”,每個(gè)數(shù)字之間用空格(一個(gè)或多個(gè)空格)隔開(kāi),可被多個(gè)nextInt()讀取,空格及回車(chē)不會(huì)被讀取。(注:輸入數(shù)字中不能夾雜除數(shù)字、空格、回車(chē)之外的其他字符,否則會(huì)報(bào)錯(cuò))

2、nextDouble()的用法同理nextInt(),注意:nextInt無(wú)法讀取小數(shù),否則會(huì)報(bào)錯(cuò)。

同理nextByte()nextFloat(),nextLong(),nextShot(),當(dāng)某個(gè)方法讀取的數(shù)字超過(guò)自身范圍,則會(huì)報(bào)錯(cuò)。
3、next()方法遇到第一個(gè)掃描有效字符,即第一個(gè)非空格非換行符后面開(kāi)始,一直獲取到下一個(gè)空格,換行符之前的,單個(gè)字符串。

4、nextLine()可以掃描到一行內(nèi)容(當(dāng)前行,光標(biāo)所在行的內(nèi)容,包括空格、回車(chē))并作為一個(gè)字符串而被獲取到。

此處重點(diǎn)講一下next()和nextLine()的區(qū)別
next():只讀取輸入直到空格。它不能讀兩個(gè)由空格或符號(hào)隔開(kāi)的單詞。此外,next()在讀取輸入后將光標(biāo)放在同一行中。(next()只讀空格之前的數(shù)據(jù),并且光標(biāo)指向本行)
nextLine():讀取輸入,包括單詞之間的空格和除回車(chē)以外的所有符號(hào)(即。它讀到行尾)。讀取輸入后,nextLine()將光標(biāo)定位在下一行。
代碼演示:
public class Text {
public static void main(String []args) {
Scanner input = new Scanner(System.in);
System.out.println("請(qǐng)輸入一個(gè)字符串(中間能加空格或符號(hào))");
String a = input.nextLine();
System.out.println("請(qǐng)輸入一個(gè)字符串(中間不能加空格或符號(hào))");
String b = input.next();
System.out.println("請(qǐng)輸入一個(gè)整數(shù)");
int c;
c = input.nextInt();
System.out.println("請(qǐng)輸入一個(gè)double類(lèi)型的小數(shù)");
double d = input.nextDouble();
System.out.println("請(qǐng)輸入一個(gè)float類(lèi)型的小數(shù)");
float f = input.nextFloat();
System.out.println("按順序輸出abcdf的值:");
System.out.println(a);
System.out.println(b);
System.out.println(c);
System.out.println(d);
System.out.println(f);
}
}
運(yùn)行結(jié)果:
請(qǐng)輸入一個(gè)字符串(中間能加空格或符號(hào))
我愛(ài)祖國(guó)!
請(qǐng)輸入一個(gè)字符串(中間不能加空格或符號(hào))
ILoveChina
請(qǐng)輸入一個(gè)整數(shù)
520
請(qǐng)輸入一個(gè)double類(lèi)型的小數(shù)
12.26e3
請(qǐng)輸入一個(gè)float類(lèi)型的小數(shù)
3.1415926
按順序輸出abcdf的值:
我愛(ài)祖國(guó)!
ILoveChina
520
12260.0
3.1415925
總結(jié)
到此這篇關(guān)于Java中Scanner用法實(shí)例解析的文章就介紹到這了,更多相關(guān)Java中Scanner用法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
springboot引入druid解析sql的過(guò)程
在開(kāi)發(fā)中,有時(shí)我們可能會(huì)需要獲取SQL中的表名,那么因?yàn)椴煌臄?shù)據(jù)源類(lèi)型SQL會(huì)存在部分差異,那么我們就可以使用alibaba 的druid包實(shí)現(xiàn)不同的數(shù)據(jù)源類(lèi)型的sql解析,需要的朋友可以參考下2023-08-08
MultipartFile中transferTo(File file)的路徑問(wèn)題及解決
這篇文章主要介紹了MultipartFile中transferTo(File file)的路徑問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-07-07
SpringBoot實(shí)現(xiàn)國(guó)密通信的流程步驟
這篇文章主要介紹了SpringBoot實(shí)現(xiàn)國(guó)密通信的流程步驟,我們需要完成以下步驟:生成支持國(guó)密的證書(shū),配置兩個(gè) Spring Boot 項(xiàng)目,使用國(guó)密證書(shū)實(shí)現(xiàn) HTTPS和驗(yàn)證通信是否成功,通過(guò)代碼示例講解的非常詳細(xì),需要的朋友可以參考下2024-11-11
通過(guò)實(shí)例了解JavaBean開(kāi)發(fā)及使用過(guò)程解析
這篇文章主要介紹了通過(guò)實(shí)例了解JavaBean開(kāi)發(fā)及使用過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08
如何設(shè)置springboot禁止日志輸出到控制臺(tái)
文章總結(jié):本文主要介紹了SpringBoot項(xiàng)目中使用SLF4J記錄日志時(shí),日志默認(rèn)輸出到控制臺(tái)的原因及解決方法,日志框架如Logback默認(rèn)會(huì)將日志輸出到控制臺(tái),可以通過(guò)`logback-spring.xml`配置文件或配置類(lèi)來(lái)禁止日志輸出到控制臺(tái),并設(shè)置日志輸出級(jí)別2025-01-01
Java之字符串轉(zhuǎn)換成Java對(duì)象方式
這篇文章主要介紹了Java之字符串轉(zhuǎn)換成Java對(duì)象方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07
java GUI編程之布局控制器(Layout)實(shí)例分析
這篇文章主要介紹了java GUI編程之布局控制器(Layout),結(jié)合實(shí)例形式分析了java GUI編程中布局控制器(Layout)具體功能、用法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2020-01-01

