国产成人毛片视频|星空传媒久草视频|欧美激情草久视频|久久久久女女|久操超碰在线播放|亚洲强奸一区二区|五月天丁香社区在线|色婷婷成人丁香网|午夜欧美6666|纯肉无码91视频

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

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

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

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

next()方法的特點

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

nextLine()方法的特點

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

注意事項

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

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

```java

import ;

public class NextTest {

public static void main(String[] args) {

String s1, s2;

Scanner sc new Scanner();

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

s1 ();

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

s2 ();

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

}

}

```

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

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

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

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

```java

import ;

public class NextTest {

public static void main(String[] args) {

String s1, s2;

Scanner sc new Scanner();

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

s1 ();

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

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

s2 ();

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

}

}

```

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

標簽: