Java如何读入字符串
在Java中,我们可以使用多种方式来读入字符串。下面将介绍三种常用的方法:使用Scanner类、使用BufferedReader类和使用System.in。
1. 使用Scanner类
Scanner类是Java中一个常用的用于读取用户输入的类。它提供了多种方法来读取不同类型的输入,包括字符串。
示例代码如下所示:
import java.util.Scanner;
public class ReadStringUsingScanner {
public static void main(String[] args) {
// 创建Scanner对象
Scanner scanner = new Scanner(System.in);
// 读取字符串
System.out.print("请输入字符串: ");
String str = scanner.nextLine();
// 打印输入的字符串
System.out.println("您输入的字符串是: " + str);
// 关闭Scanner对象
scanner.close();
}
}
这段代码首先创建了一个Scanner对象,并将其绑定到标准输入流(System.in)。接着使用nextLine()
方法读取字符串,并将其保存到变量str
中。最后打印输入的字符串。
2. 使用BufferedReader类
BufferedReader类是Java中另一个常用的读取用户输入的类。与Scanner类不同,BufferedReader类的读取方法更底层,可以更高效地读取大量输入。
示例代码如下所示:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class ReadStringUsingBufferedReader {
public static void main(String[] args) {
// 创建BufferedReader对象
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
// 读取字符串
try {
System.out.print("请输入字符串: ");
String str = reader.readLine();
// 打印输入的字符串
System.out.println("您输入的字符串是: " + str);
// 关闭BufferedReader对象
reader.close();
} catch(IOException e) {
e.printStackTrace();
}
}
}
这段代码首先创建了一个BufferedReader对象,并将其初始化为使用标准输入流(System.in)作为输入源。接着使用readLine()
方法读取一行字符串,并将其保存到变量str
中。最后打印输入的字符串。
3. 使用System.in
除了使用Scanner类和BufferedReader类,我们还可以直接使用System.in来读取字符串。这种方法相对较底层,需要使用字节数组来保存输入的内容。
示例代码如下所示:
import java.io.IOException;
public class ReadStringUsingSystemIn {
public static void main(String[] args) {
try {
// 设置输入编码为UTF-8
System.setIn(new java.io.FileInputStream(java.io.FileDescriptor.in));
// 读取字符串
System.out.print("请输入字符串: ");
byte[] buffer = new byte[1024];
int length = System.in.read(buffer);
// 将字节数组转换为字符串
String str = new String(buffer, 0, length).trim();
// 打印输入的字符串
System.out.println("您输入的字符串是: " + str);
} catch(IOException e) {
e.printStackTrace();
}
}
}
这段代码首先将输入编码设置为UTF-8,然后使用System.in.read()
方法从输入流中读取字节,并将其保存到字节数组buffer
中。接着使用new String()
方法将字节数组转换为字符串,并使用trim()
方法去掉多余的空格。最后打印输入的字符串。
关系图
下面是三种读取字符串的方法的关系图:
erDiagram
ReadStringUsingScanner ||--o{ Scanner
ReadStringUsingBufferedReader ||--o{ BufferedReader
ReadStringUsingSystemIn ||--o{ System.in
状态图
下面是一个读取字符串的状态图:
stateDiagram
[*] --> 输入字符串
输入字符串 --> 打印输入的字符串
打印输入的字符串 --> [*]
以上就是在Java中读取字符串的三种常用方法。你可以根据具体的需求选择合适的方法来实现。希望本文对你有所帮助!