java學習筆記_3-工具類Scanner
阿新 • • 發佈:2018-12-20
初步認識Scanner
簡單版本解釋:
java.util.Scanner是java5的新特性,可以獲取使用者的輸入。
詳細版本解釋:
基本定義:
Scanner類是一個可以使用正則表示式來解析基本型別和字串的簡單文字掃描器。
摘自Java_API文件
解釋:正則表示式 一種強大的字串匹配工具
接收輸入的方式:
Scanner 使用分隔符模式將其輸入分解為標記,預設情況下該分隔符模式與空白匹配。然後可以使用不同的next方法將得到的標記轉換為不同的值。
Scanner不同的next方法總結
表格
返回值 | 方法名及描述 |
---|---|
String | next():查詢並返回來自此掃描器的下一個完整標記 |
String | next(Pattern pattern):如果下一個標記與指定模式匹配,則返回下一個標記 |
String | next(String pattern):如果下一個標記從指定字串構造的模式匹配,則返回下一個標記 |
BigDecimal | nextBigDecimal():將輸入資訊的下一個標記掃描為一個BigDecimal |
BigInteger | nextBigInteger():將輸入資訊的下一個標記掃描為一個BigInteger |
BigInteger | nextBigInteger(int radix):將輸入資訊的下一個標記掃描為一個BigInteger |
boolean | nextBoolean():掃描解釋為一個布林值的輸入標記並返回 |
byte | nextByte():將輸入資訊的下一個標記掃描為一個byte |
byte | nextByte(int radix):將輸入資訊的下一個標記掃描為一個byte |
double | nextDouble():將輸入資訊的下一個標記掃描為一個double |
float | nextFloat:將輸入資訊的下一個標記掃描為一個float |
int | nextInt():將輸入資訊的下一個標記掃描為一個int |
int | nextInt(int radix):將輸入資訊的下一個標記掃描為一個int |
String | nextLine():執行當前行,並返回跳過的所有輸入資訊 |
long | nextLong():將輸入資訊的下一個標記掃描為一個long |
long | nextLong(int radix):將輸入資訊的下一個標記掃描為一個long |
short | nextShort():將輸入資訊的下一個標記掃描為一個short |
short | nextShort(int radix):將輸入資訊的下一個標記掃描為一個short |
特殊之next()與nextLine()的區別
next():
·一定要讀取到有效字元後才可以結束輸入。
·對輸入有效字元之前遇到的空白,next()方法會自動將其去掉
·只有輸入有效字元後才將其後面輸入的空白作為分隔符或者結束符
·next()不能得到帶有空格的字串
nextLine():
·以Enter為結束符,也就是說nextLine()方法返回的是輸入回車之前的所有字元
·可以獲得空白
Scanner的hasNextXXX()
Scanner類提供一組boolean型別的方法用來驗證是否是需要的資料
hasNext____ +需要驗證的資料型別即可
比如hasNextDouble()驗證傳入的引數是否為double型別
使用
使用前需要新增
import java.util.Scanner;
定義方法:
Scanner 自定義名 = new Scanner(System.in);
呼叫方法:
變數型別 變數名 = 自定義名.next方法
例子
Scanner sc = new Scanner(System.in);
int a = sc.nextInt() ;
關於warnings
使用Scanner是出現
Resource leak: ‘sc’ is never closed
這裡涉及屬於 IO流 的類 ,相關影響:
輸入流,不關閉,只會佔用資源。
輸出流,不關閉,可能會造成最後一部分資料丟失。
如果需要消除這個warning
只需要在使用完後 加上 close() 方法即可。