java Scanner類(lèi)的使用示例代碼
Scanner類(lèi)簡(jiǎn)介
Java 5添加了java.util.Scanner類(lèi),這是一個(gè)用于掃描輸入文本的新的實(shí)用程序。它是以前的StringTokenizer和Matcher類(lèi)之間的某種結(jié)合。由于任何數(shù)據(jù)都必須通過(guò)同一模式的捕獲組檢索或通過(guò)使用一個(gè)索引來(lái)檢索文本的各個(gè)部分。于是可以結(jié)合使用正則表達(dá)式和從輸入流中檢索特定類(lèi)型數(shù)據(jù)項(xiàng)的方法。這樣,除了能使用正則表達(dá)式之外,Scanner類(lèi)還可以任意地對(duì)字符串和基本類(lèi)型(如int和double)的數(shù)據(jù)進(jìn)行分析。借助于Scanner,可以針對(duì)任何要處理的文本內(nèi)容編寫(xiě)自定義的語(yǔ)法分析器。
為了實(shí)現(xiàn)程序與人的交互,java給我們提供了這樣一個(gè)工具類(lèi),我們可以獲取用戶的輸入。java.util.Scanner是Java5的新特征。我們可以通過(guò)Scanner類(lèi)來(lái)獲取用戶的輸入。
我們使用Scanner scanner = new Scanner(System.in);的基礎(chǔ)語(yǔ)法來(lái)創(chuàng)建一個(gè)掃描對(duì)象,用于接收鍵盤(pán)數(shù)。
hasnext()與hasnextLine()的使用:
我們通過(guò)Scanner類(lèi)的next()與nextLine()的方法獲取輸入的字符串。在讀取前,我們一般需要使用hasNext()與hasNextLine()判斷是否還有輸入的數(shù)據(jù)。
當(dāng)我們使用next方式接收時(shí):
代碼示例:
package com.scanner; import java.util.Scanner; public class Demo01 { public static void main(String[] args) { //創(chuàng)建一個(gè)掃描對(duì)象,用于接受鍵盤(pán)數(shù) Scanner scanner= new Scanner(System.in); System.out.println("使用next方式接收:"); //判斷用戶有沒(méi)有輸入字符串 if(scanner.hasNext()){ //使用next方式接收 String str = scanner.next(); System.out.println("輸出的內(nèi)容為:"+str); } //凡是屬于IO流的類(lèi)如果不關(guān)閉會(huì)一直占用資源,關(guān)閉scanner scanner.close(); } }
next()注意點(diǎn):(String str = scanner.next());
- 一定要讀取到有效字符后才可以結(jié)束輸入。
- 對(duì)有效字符之前遇到的空白,next()方法會(huì)將其自動(dòng)去掉。
- 只有輸入有效字符后才將其后面輸入的空白作為分隔符或者結(jié)束符。
- next()不能得到帶有空格的字符串。
當(dāng)我們使用nextLine()方式接收時(shí):(String str = scanner.nextLine());
代碼示例:
package com.scanner; import java.util.Scanner; public class Demo02 { public static void main(String[] args) { //從鍵盤(pán)接收數(shù)據(jù) Scanner scanner = new Scanner(System.in); System.out.println("使用nextLine方式接收"); //判斷是否還有輸入 if(scanner.hasNext()){ String str = scanner.nextLine(); System.out.println("輸出的內(nèi)容為:"+str); } scanner.close(); } }
nextLine()注意點(diǎn):
- 以enter為結(jié)束符,也就是說(shuō)nextLine()方法返回的是輸入回車(chē)之前的所有字符。
- 它可以獲得空白。
當(dāng)輸入的數(shù)據(jù)類(lèi)型不同時(shí):如
Int型:Scanner.hasNextInt();//判斷是否還有數(shù)據(jù)輸入
Scanner.nextInt();//輸入整數(shù)數(shù)據(jù)
Float型同上。
scanner進(jìn)階使用(與循環(huán)共同使用)
代碼示例:
package com.scanner; import java.util.Scanner; public class Demo04 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); //從鍵盤(pán)接收數(shù)據(jù) int i = 0; float f = 0.0f; System.out.println("請(qǐng)輸入整數(shù):"); if (scanner.hasNextInt()){ //判斷是否還有數(shù)據(jù)輸入; i = scanner.nextInt(); System.out.println("整數(shù)數(shù)據(jù):"+ i); }else{ System.out.println("輸入的不是整數(shù)數(shù)據(jù)!"); } System.out.println("請(qǐng)輸入小數(shù):"); if (scanner.hasNext()){ f = scanner.nextFloat();//代表為真 System.out.println("小數(shù)數(shù)據(jù):"+ f); }else{ System.out.println("輸入的不是小數(shù)數(shù)據(jù)!"); } scanner.close();// 凡是屬于IO流的類(lèi)如果不關(guān)閉會(huì)一直占用資源,關(guān)閉scanner } }
到此這篇關(guān)于java Scanner類(lèi)的使用的文章就介紹到這了,更多相關(guān)java Scanner類(lèi)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- java中Scanner類(lèi)的簡(jiǎn)單用法分享
- java編程scanner類(lèi)用法示例
- 在java中用Scanner類(lèi)讀入單個(gè)字符的方法
- Java使用Scanner類(lèi)獲取用戶輸入實(shí)例詳解
- Java使用Scanner類(lèi)進(jìn)行控制臺(tái)輸入實(shí)現(xiàn)方法
- Java Scanner類(lèi)及其方法使用圖解
- java自定義Scanner類(lèi)似功能類(lèi)的實(shí)例講解
- Java使用Scanner類(lèi)進(jìn)行文件的讀取方式
- Java中Scanner類(lèi)使用保姆級(jí)教程
- Java中Scanner類(lèi)基礎(chǔ)使用、可能遇到的問(wèn)題及注意事項(xiàng)
相關(guān)文章
java怎么設(shè)置代理ip實(shí)現(xiàn)高效網(wǎng)絡(luò)請(qǐng)求
無(wú)論是在爬蟲(chóng)、API調(diào)用還是網(wǎng)絡(luò)測(cè)試中,代理IP的使用都變得愈發(fā)重要,本文我們主要來(lái)介紹一下如何在Java中設(shè)置代理IP實(shí)現(xiàn)高效網(wǎng)絡(luò)請(qǐng)求吧2024-11-11JFreeChart插件實(shí)現(xiàn)的折線圖效果實(shí)例
這篇文章主要介紹了JFreeChart插件實(shí)現(xiàn)的折線圖效果,結(jié)合實(shí)例形式分析了基于JFreeChart繪制折線圖的相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2016-08-08spring boot和spring cloud之間的版本關(guān)系
這篇文章主要介紹了spring boot和spring cloud之間的版本關(guān)系,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-08-08RabbitMQ開(kāi)啟SSL與SpringBoot連接測(cè)試的配置方法
本文基于 CentOS 7 + Git + OpenSSL + yum 安裝的 RabbitMQ,需要讀者提交安裝好。其他方式也可變通參考本文。對(duì)RabbitMQ開(kāi)啟SSL與SpringBoot連接測(cè)試相關(guān)知識(shí)感興趣的朋友一起看看吧2022-01-01