易百教程

198、在 Java 中,可以通过多少种方式从控制台获取输入?

在 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 类并实现了 IteratorCloseable 接口。 考虑以下示例。


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);
    }
}