在Java中, 有三种不同的方式可以在命令行环境(控制台)中从用户读取输入。
1.使用缓冲读取器类
这是JDK1.0中引入的Java经典输入方法。通过将System.in(标准输入流)包装在InputStreamReader(包装在BufferedReader中)中来使用此方法, 我们可以在命令行中从用户读取输入。
输入被缓冲,以便有效读取。
包装代码很难记住。
程序:
// Java program to demonstrate BufferedReader
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Test
{
public static void main(String[] args) throws IOException
{
//Enter data using BufferReader
BufferedReader reader =
new BufferedReader( new InputStreamReader(System.in));
// Reading data using readLine
String name = reader.readLine();
// Printing the read line
System.out.println(name);
}
}
【Java使用3种方法从控制台读取输入】输入如下:
Geek
输出如下:
Geek
注意:要读取其他类型, 我们使用Integer.parseInt(), Double.parseDouble()之类的函数。要读取多个值, 我们使用split()。
2.使用Scanner类
这可能是最优选的输入方法。 Scanner类的主要目的是使用正则表达式解析原始类型和字符串, 但是它也可以用于在命令行中从用户读取输入。
优点:
从标记化的输入中解析基元(nextInt(), nextFloat()等)的便捷方法。
正则表达式可用于查找标记。
缺点:
读取方法不同步
要查看更多差异, 请参阅这个文章。
// Java program to demonstrate working of Scanner in Java
import java.util.Scanner;
class GetInputFromUser
{
public static void main(String args[])
{
// Using Scanner for Getting Input from User
Scanner in = new Scanner(System.in);
String s = in.nextLine();
System.out.println( "You entered string " +s);
int a = in.nextInt();
System.out.println( "You entered integer " +a);
float b = in.nextFloat();
System.out.println( "You entered float " +b);
}
}
输入如下:
lsbin
12
3.4
输出如下:
You entered string lsbin
You entered integer 12
You entered float 3.4
3.使用控制台类
它已成为从命令行读取用户输入的首选方法。此外, 它可用于读取类似密码的输入, 而无需回显用户输入的字符;也可以使用格式字符串语法(例如System.out.printf())。
优点:
- 读取密码而不回显输入的字符。
- 读取方法是同步的。
- 可以使用格式字符串语法。
在非交互式环境(例如在IDE中)中不起作用。
// Java program to demonstrate working of System.console()
// Note that this program does not work on IDEs as
// System.console() may require console
public class Sample
{
public static void main(String[] args)
{
// Using Console to input data from user
String name = System.console().readLine();
System.out.println(name);
}
}
请参考这个以更快的速度读取输入。
如果发现任何不正确的地方, 或者想分享有关上述主题的更多信息, 请写评论。
推荐阅读
- 将n写为两个或多个正整数之和的方法
- 为偏斜树着色的方法,以使父级和子级具有不同的颜色
- 排列球以使相邻球为不同类型的方式
- 使用允许重复的数组元素求和到N的方法
- 分割字符串的方法,以便每个分区以不同的字符开头
- C++标准模板库(STL)中的列表用法详细介绍
- 从二进制字符串中删除一个元素,使XOR变为0的方法
- 萝卜家园系统win732位介绍
- win7纯净版硬盘图解