在Java中接收键盘输入的主要方式有两种,分别是使用Scanner类和使用BufferedReader类。
使用Scanner类是最常见的一种方式,它提供了丰富的方法,可以接收不同类型的输入。使用BufferedReader类则需要配合InputStreamReader类,它们一起为用户提供了更底层的输入控制。
本文将详细介绍这两种接收键盘输入的方式,并给出具体的代码示例。
一、使用SCANNER类接收键盘输入
Scanner
类是java.util
包中的一部分,是Java5的新特征。Scanner类可以解析基本类型和字符串的正则表达式。
- 创建Scanner对象
首先,我们需要创建一个Scanner
对象,将System.in
作为参数传递给它的构造函数。System.in
代表标准输入流,也就是键盘输入。
Scanner scanner = new Scanner(System.in);
- 使用Scanner对象读取输入
Scanner
类提供了多种方法来读取用户的输入。例如,nextInt()
方法可以读取一个整数,nextLine()
方法可以读取一整行文本。
int number = scanner.nextInt();
String line = scanner.nextLine();
二、使用BUFFEREDREADER类接收键盘输入
BufferedReader
类是java.io
包中的一部分,提供了一种同步的读取文本的方法。尽管它的使用稍微复杂一些,但它提供了更多的控制,特别是在处理大量输入时。
- 创建BufferedReader对象
创建BufferedReader
对象需要两步。首先,创建一个InputStreamReader
对象,将System.in
作为参数传递给它的构造函数。然后,创建一个BufferedReader
对象,将InputStreamReader
对象作为参数传递给它的构造函数。
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
- 使用BufferedReader对象读取输入
BufferedReader
类提供了readLine()
方法来读取用户的输入。这个方法可以读取一整行的文本,直到用户按下回车键。
String line = br.readLine();
以上就是在Java中接收键盘输入的两种主要方式。在实际编程中,可以根据需要选择使用哪一种。
相关问答FAQs:
1. 如何在Java中接收键盘输入?
在Java中,您可以使用Scanner类来接收键盘输入。首先,您需要导入java.util.Scanner类,然后创建Scanner对象。接下来,您可以使用Scanner对象的next方法来读取不同类型的输入,如字符串、整数或浮点数。例如:
import java.util.Scanner;
public class KeyboardInputExample {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入一个字符串:");
String inputString = scanner.next();
System.out.println("您输入的字符串是:" + inputString);
System.out.print("请输入一个整数:");
int inputInt = scanner.nextInt();
System.out.println("您输入的整数是:" + inputInt);
System.out.print("请输入一个浮点数:");
double inputDouble = scanner.nextDouble();
System.out.println("您输入的浮点数是:" + inputDouble);
scanner.close();
}
}
2. 如何在Java中接收多行键盘输入?
如果您需要接收多行键盘输入,可以使用Scanner类的nextLine方法。nextLine方法将读取整行输入,包括空格和特殊字符。例如:
import java.util.Scanner;
public class MultiLineInputExample {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入多行文本(以空行结束):");
StringBuilder inputText = new StringBuilder();
String line;
while (!(line = scanner.nextLine()).isEmpty()) {
inputText.append(line).append("n");
}
System.out.println("您输入的多行文本是:n" + inputText.toString());
scanner.close();
}
}
3. 如何在Java中实时接收键盘输入?
如果您需要实时接收键盘输入,可以使用Java中的System.in类和java.io.InputStreamReader类。通过使用BufferedReader类,您可以实时读取键盘输入。例如:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class RealTimeInputExample {
public static void main(String[] args) {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
try {
System.out.println("请输入文本(按Enter键结束):");
String inputText = "";
while (!(inputText = reader.readLine()).isEmpty()) {
System.out.println("您输入的文本是:" + inputText);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
原创文章,作者:Edit1,如若转载,请注明出处:https://docs.pingcode.com/baike/312082