在 Java 中,可以通过三种方式从控制台获取输入。
1、使用 BufferedReader 类:可以通过将 System.in
包装到 InputStreamReader
并将其传递给 BufferedReader
来从控制台获取输入。 当输入被缓冲时,它提供了有效的读取。 考虑以下示例。
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Person
{
public static void main(String[] args) throws IOException
{
System.out.println("Enter the name of the person");
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String name = reader.readLine();
System.out.println(name);
}
}
2、使用 Scanner 类:Java Scanner
类使用默认为空格的分隔符将输入分解为标记。 它提供了许多方法来读取和解析各种原始值。 Java Scanner
类广泛用于使用正则表达式解析字符串和原始类型的文本。 Java Scanner
类扩展了 Object 类并实现了 Iterator
和 Closeable
接口。 考虑以下示例。
import java.util.*;
public class ScannerClassExample2 {
public static void main(String args[]) {
String str = "Hello/This is JavaTpoint/My name is Abhishek.";
//Create scanner with the specified String Object
Scanner scanner = new Scanner(str);
System.out.println("Boolean Result: " + scanner.hasNextBoolean());
//Change the delimiter of this scanner
scanner.useDelimiter("/");
//Printing the tokenized Strings
System.out.println("---Tokenizes String---");
while (scanner.hasNext()) {
System.out.println(scanner.next());
}
//Display the new delimiter
System.out.println("Delimiter used: " + scanner.delimiter());
scanner.close();
}
}
3、使用 Console 类:Java Console 类用于从控制台获取输入。 它提供了读取文本和密码的方法。 如果使用 Console 类读取密码,它将不会显示给用户。 java.io.Console
类在内部附加到系统控制台。 Console
类是从 1.5 开始引入的。 考虑以下示例。
import java.io.Console;
class ReadStringTest {
public static void main(String args[]) {
Console c = System.console();
System.out.println("Enter your name: ");
String n = c.readLine();
System.out.println("Welcome " + n);
}
}