📅  最后修改于: 2020-03-25 01:07:39             🧑  作者: Mango
在Java中,有三种不同的方式可以在命令行环境(控制台)中从用户读取输入。
1.使用缓冲读取器类
这是Java的经典输入方法,在JDK1.0中引入。通过将System.in(标准输入流)包装在InputStreamReader(包装在BufferedReader中)中来使用此方法,我们可以在命令行中从用户读取输入。
优点
缺点:
程序:
// Java展示如何使用BufferedReader
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Test
{
public static void main(String[] args) throws IOException
{
//使用BufferReader输入
BufferedReader reader =
new BufferedReader(new InputStreamReader(System.in));
// 使用readLine读取数据
String name = reader.readLine();
// 打印读取的行
System.out.println(name);
}
}
输入:
芒果
输出:
芒果
注意:要读取其他类型,我们使用Integer.parseInt()、Double.parseDouble()之类的函数。要读取多个值,我们使用split()。
2.使用Scanner类
这可能是最优选的输入方法。Scanner类的主要目的是使用正则表达式解析原始类型和字符串,但是它也可以用于在命令行中从用户读取输入。
优点:
缺点:
要看到更多的差异,请参阅此文章。
// Java展示使用Scanner
import java.util.Scanner;
class GetInputFromUser
{
public static void main(String args[])
{
// 使用Scanner读取输入
Scanner in = new Scanner(System.in);
String s = in.nextLine();
System.out.println("您输入了 string "+s);
int a = in.nextInt();
System.out.println("您输入了 integer "+a);
float b = in.nextFloat();
System.out.println("您输入了 float "+b);
}
}
输入:
芒果文档
12
3.4
输出:
您输入了 string 芒果文档
您输入了 integer 12
您输入了 float 3.4
3.使用System.console控制台类
它已成为从命令行读取用户输入的首选方法。此外,它可用于读取类似密码的输入,而无需回显用户输入的字符;也可以使用格式字符串语法(例如System.out.printf())。
优点:
缺点:
// Java展示如何使用System.console()
public class Sample
{
public static void main(String[] args)
{
// 使用Console接受输入
String name = System.console().readLine();
System.out.println(name);
}
}
请参考此内容以更快速地阅读输入。