卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

Java中nextLine()和next()的區(qū)別

next()方法和nextLine()方法的區(qū)別在使用Scanner類實(shí)現(xiàn)字符窗口輸入時(shí),我們可以選擇使用next()方法或者nextLine()方法。那么這兩種方法究竟有什么區(qū)別呢?下面來進(jìn)行一些總

next()方法和nextLine()方法的區(qū)別

在使用Scanner類實(shí)現(xiàn)字符窗口輸入時(shí),我們可以選擇使用next()方法或者nextLine()方法。那么這兩種方法究竟有什么區(qū)別呢?下面來進(jìn)行一些總結(jié)。

next()方法的特點(diǎn)

首先,next()方法需要讀取到有效字符后才能結(jié)束輸入。對于輸入有效字符之前遇到的空格鍵、Tab鍵或Enter鍵等結(jié)束符,next()方法會自動將其去掉。只有在輸入有效字符之后,next()方法才會將其后輸入的空格鍵、Tab鍵或Enter鍵等視為分隔符或結(jié)束符。簡單地說,next()方法查找并返回從Scanner對象中獲取的下一個(gè)完整標(biāo)記。這個(gè)完整標(biāo)記的前后是與分隔模式匹配的輸入信息。因此,next()方法無法獲取帶有空格的字符串。

nextLine()方法的特點(diǎn)

相比之下,nextLine()方法的結(jié)束符只是Enter鍵。它會返回Enter鍵之前的所有字符作為一個(gè)字符串。由于nextLine()方法的結(jié)束符只是Enter鍵,它可以獲取帶有空格的字符串。

注意事項(xiàng)

鑒于以上兩種方法的區(qū)別,當(dāng)使用next()方法和nextLine()方法連續(xù)使用時(shí),需要注意下面的問題。

舉個(gè)例子,假設(shè)我們有以下代碼:

```java

import ;

public class NextTest {

public static void main(String[] args) {

String s1, s2;

Scanner sc new Scanner();

("請輸入第一個(gè)字符串:");

s1 ();

("請輸入第二個(gè)字符串:");

s2 ();

("輸入的字符串是:" s1 " " s2);

}

}

```

如果我們運(yùn)行以上代碼,輸入"home"和"work",則輸出結(jié)果為:"輸入的字符串是:home work"。

但是,如果將代碼中的`s1 ();`和`s2 ();`這兩行交換位置,則會出現(xiàn)問題。運(yùn)行結(jié)果僅顯示"請輸入第一個(gè)字符串:home",并沒有給s2從鍵盤輸入值。

經(jīng)過驗(yàn)證,其他的next相關(guān)方法(如nextDouble()、nextFloat()、nextInt()等)與nextLine()連用時(shí)都存在這個(gè)問題。解決辦法是在每一個(gè)next()方法之后加上一個(gè)nextLine()方法,將被next()方法去掉的Enter結(jié)束符過濾掉。

下面是修改過的代碼示例:

```java

import ;

public class NextTest {

public static void main(String[] args) {

String s1, s2;

Scanner sc new Scanner();

("請輸入第一個(gè)字符串:");

s1 ();

(); // 過濾掉被next()方法去掉的Enter結(jié)束符

("請輸入第二個(gè)字符串:");

s2 ();

("輸入的字符串是:" s1 " " s2);

}

}

```

運(yùn)行以上修改后的代碼,輸入"home"和"work",則輸出結(jié)果為:"輸入的字符串是:home work"。

標(biāo)簽: