Scanner類之常用方法

2021-08-30 15:39:42 字數 3050 閱讀 9019

scanner(inputstream source)

構造乙個新的scanner,它生成的值是從指定的輸入流掃瞄的。

構造乙個新的scanner,它生成的值是從指定的輸入流掃瞄的。取自該流的位元組通過底層平台的

預設字符集轉換成字元。

例項:

scanner sc = new scanner(system.in);

int i = sc.nextint();

system類下的靜態字段

static inputstream

in

「標準」輸入流。

public static final inputstream in

「標準」輸入流。此流已開啟並準備提供輸入資料。通常,此流對應於鍵盤輸入或者由主機環境或使用者指定的另乙個輸入源。

獲取下乙個輸入項。***可以是int,double等,預設情況下,scanner使用空格,回車等作為分隔符

intnextint()

將輸入資訊的下乙個標記掃瞄為乙個 int。

string

nextline()

此掃瞄器執行當前行,並返回跳過的輸入資訊。

此方法返回當前行的其餘部分,不包括結尾處的行分隔符。當前位置移至下一行的行首。

因為此方法會繼續在輸入資訊中查詢行分隔符,所以如果沒有行分隔符,它可能會緩衝所有輸入資訊,並查詢要跳過的行。

string

next()

查詢並返回來自此掃瞄器的下乙個完整標記。

完整標記的前後是與分隔模式匹配的輸入資訊。即使以前呼叫hasnext()返回了true,在等待要掃瞄的輸入時此方法也可能阻塞。

判斷是否還有下乙個輸入項,其中***可以是int,double等。如果需要判斷是否包含下乙個字串,則可以省略***

booleanhasnextint()

如果通過使用nextint()方法,此掃瞄器輸入資訊中的下乙個標記可以解釋為預設基數中的乙個 int 值,則返回 true。

booleanhasnext()

如果此掃瞄器的輸入中有另乙個標記,則返回 true。

在等待要掃瞄的輸入時,此方法可能阻塞。掃瞄器將不執行任何輸入。

nextline()方法只識別行結束符(回車符)

next()在輸入有效字元之後,將其後輸入的空格鍵、tab鍵或enter鍵等視為分隔符或結束符。

nextline()方法返回的是enter鍵

之前的所有字元,它是可以得到帶空格的字串的。

next()會自動消去有效字元前的空格,只返回輸入的字元,不能得到帶空格的字串。

string s1,s2;

scanner sc=new scanner(system.in);

system.out.print("請輸入第乙個字串:");

s1=sc.nextline();

system.out.println(s1);

system.out.print("請輸入第二個字串:");

s2=sc.next();

system.out.println(s2);

結果:

請輸入第乙個字串:123 456

123 456

請輸入第二個字串:123 456

123 //其後不包含空格,next方法自動去掉其後識別符號

如果使用如下程式進行讀寫,則會出現問題:

string s1,s2;

scanner sc=new scanner(system.in);

system.out.print("請輸入第乙個字串:");

s1=sc.next();

system.out.println(s1);

system.out.print("請輸入第二個字串:");

s2=sc.nextline();

system.out.println(s2);

結果:

請輸入第乙個字串:123

123請輸入第二個字串:

process finished with exit code 0

上述程式將next()和nextline()順序交換後,此時我們只輸入一次123,程式就執行結束了。這是因為,我們在鍵盤上錄入123時,其實錄入的是123和\r\n,next()方法只讀取到123就結束了,nextline()自動讀取了被next()去掉的/r/n作為他的結束符,所以沒辦法從鍵盤輸入值。

經過驗證,其他的next的方法,如nextdouble()  ,nextfloat() ,nextint() 等與nextline()連用時都存在這個問題。

解決辦法是:

①在每乙個 next()、nextdouble()  、nextfloat()、nextint() 等語句之後加乙個nextline()語句,將被next()去掉的enter結束符過濾掉。

②直接用nextline()讀入所需資料,後面我們會學習將字串轉換為其他型別(整數、浮點數等)的方法。

Scanner類常用方法

常用方法 new scanner string 獲取字串輸入 new scanner system.in 獲取鍵盤輸入 scanner.hasnext scanner.hasnextline scanner.hasnextint scanner.next 獲取字串 scanner.nextline ...

常用類 Scanner類

scanner類概述 jdk5以後用於獲取使用者的鍵盤輸入 構造方法 public scanner inputstream source 基本格式 hasnext 判斷是否還有下乙個輸入項,其中 可以是int,double等。如果需要判斷是否包含下乙個字串,則可以省略 next 獲取下乙個輸入項。的...

034 java常用類 Scanner類

一 string類概述及其構造方法 1 scanner類概述 jdk5以後用於獲取使用者的鍵盤輸入 2 構造方法 public scanner inputstream source 二 scanner類的成員方法 1 基本格式 1 hasnext 判斷是否還有下乙個輸入項,其中 可以是int,dou...