java scanner next nextLine
时间: 2025-01-09 20:11:41 浏览: 6
### Java 中 `Scanner` 类的 `next()` 和 `nextLine()` 方法区别
在 Java 的 `Scanner` 类中,`next()` 和 `nextLine()` 是用于读取输入的方法,但两者存在显著差异。
#### next() 方法
此方法返回由空白字符分隔的下一个标记。如果匹配到多个连续的空白符,则跳过这些空白符并继续寻找下一个非空白字符作为新令牌的一部分[^1]。
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("Enter a word:");
String inputWord = scanner.next();
System.out.println("You entered the word: " + inputWord);
scanner.close();
}
}
```
#### nextLine() 方法
该方法获取当前行中的剩余部分作为一个字符串,并移动到下一行。这意味着它会读入包括空格在内的整个行的内容直到遇到换行符为止[^2]。
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("Enter a line of text:");
String inputText = scanner.nextLine();
System.out.println("You entered this line: " + inputText);
scanner.close();
}
}
```
当混合使用这两个函数时需要注意一个问题:调用了 `next()` 后再立即调用 `nextLine()` 可能不会按预期工作,因为前者不消费掉最后的那个换行符,而后者则会在找到第一个换行之前一直等待新的输入[^3]。
阅读全文