java Scanner類的使用示例代碼
Java 5添加了java.util.Scanner類,這是一個(gè)用于掃描輸入文本的新的實(shí)用程序。它是以前的StringTokenizer和Matcher類之間的某種結(jié)合。由于任何數(shù)據(jù)都必須通過(guò)同一模式的捕獲組檢索或通過(guò)使用一個(gè)索引來(lái)檢索文本的各個(gè)部分。于是可以結(jié)合使用正則表達(dá)式和從輸入流中檢索特定類型數(shù)據(jù)項(xiàng)的方法。這樣,除了能使用正則表達(dá)式之外,Scanner類還可以任意地對(duì)字符串和基本類型(如int和double)的數(shù)據(jù)進(jìn)行分析。借助于Scanner,可以針對(duì)任何要處理的文本內(nèi)容編寫自定義的語(yǔ)法分析器。
為了實(shí)現(xiàn)程序與人的交互,java給我們提供了這樣一個(gè)工具類,我們可以獲取用戶的輸入。java.util.Scanner是Java5的新特征。我們可以通過(guò)Scanner類來(lái)獲取用戶的輸入。
我們使用Scanner scanner = new Scanner(System.in);的基礎(chǔ)語(yǔ)法來(lái)創(chuàng)建一個(gè)掃描對(duì)象,用于接收鍵盤數(shù)。
hasnext()與hasnextLine()的使用:我們通過(guò)Scanner類的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ì)象,用于接受鍵盤數(shù)Scanner scanner= new Scanner(System.in);System.out.println('使用next方式接收:');//判斷用戶有沒有輸入字符串if(scanner.hasNext()){ //使用next方式接收 String str = scanner.next(); System.out.println('輸出的內(nèi)容為:'+str);} //凡是屬于IO流的類如果不關(guān)閉會(huì)一直占用資源,關(guān)閉scannerscanner.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) {//從鍵盤接收數(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()方法返回的是輸入回車之前的所有字符。 它可以獲得空白。當(dāng)輸入的數(shù)據(jù)類型不同時(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); //從鍵盤接收數(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流的類如果不關(guān)閉會(huì)一直占用資源,關(guān)閉scanner }}
到此這篇關(guān)于java Scanner類的使用的文章就介紹到這了,更多相關(guān)java Scanner類內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. idea修改背景顏色樣式的方法2. jsp EL表達(dá)式詳解3. 解決ajax的delete、put方法接收不到參數(shù)的問(wèn)題方法4. IntelliJ IDEA 統(tǒng)一設(shè)置編碼為utf-8編碼的實(shí)現(xiàn)5. IntelliJ IDEA設(shè)置自動(dòng)提示功能快捷鍵的方法6. Django ORM實(shí)現(xiàn)按天獲取數(shù)據(jù)去重求和例子7. Jsp中request的3個(gè)基礎(chǔ)實(shí)踐8. XML入門的常見問(wèn)題(一)9. chat.asp聊天程序的編寫方法10. 怎樣才能用js生成xmldom對(duì)象,并且在firefox中也實(shí)現(xiàn)xml數(shù)據(jù)島?
