nextLine()函数的用法和注意事项
nextLine() 函数是 Java 中的一个输入函数,用于从标准输入流中读取一行用户输入。
用法:
1. 引入 java.util.Scanner 类库。
2. 创建 Scanner 对象。例如:Scanner scanner = new Scanner(System.in);
这里的 System.in 表示标准输入流,即键盘输入。
3. 调用 nextLine() 方法,通过键盘输入获取一个完整的字符串。
例如,以下示例演示了如何使用 nextLine() 函数获取用户输入的一行字符串,并输出到控制台:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// 创建 Scanner 对象
Scanner scanner = new Scanner(System.in);
// 获取用户输入的一行字符串
String userInput = scanner.nextLine();
// 输出用户输入的字符串
System.out.println("用户输入的字符串是:" + userInput);
}
}
注意事项:
1. nextLine() 函数会读取一整行的输入,直到遇到换行符(
),包括换行符在内将作为字符串的一部分。
2. 如果在调用 nextLine() 之前,还调用了其他的输入函数(如 nextInt()、nextDouble() 等),则需要注意,这些函数在读取用户输入后留下了一个换行符(
),而这个换行符会被 nextLine() 当作输入的内容,导致出现意料之外的结果。
解决办法是在调用 nextLine() 之前,先调用一次 nextLine(),将之前的换行符读取并丢弃。
例如,以下示例展示了调用 nextInt() 后,再调用 nextLine() 时出现的问题及解决办法:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// 创建 Scanner 对象
Scanner scanner = new Scanner(System.in);
// 获取用户输入的整数
int number = scanner.nextInt();
// 解决办法:读取并丢弃之前的换行符
scanner.nextLine();
// 获取用户输入的一行字符串
String userInput = scanner.nextLine();
// 输出用户输入的字符串
System.out.println("用户输入的字符串是:" + userInput);
}
}
输入示例:
123
Hello World
输出结果:
用户输入的字符串是:Hello World
这里使用 nextLine() 之前,调用了 nextInt(),获取了用户输入的整数,然后调用了 nextLine() 获取用户输入的字符串。如果没有添加解决办法:scanner.nextLine();,则输出结果会是:用户输入的字符串是:,即获取到的字符串为空。所以,当使用 nextLine() 前后调用了其他的输入函数时,需要注意添加正确的处理。
