1. 程式人生 > >java學習筆記_3-工具類Scanner

java學習筆記_3-工具類Scanner

初步認識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() 方法即可。