专注Java教育14年 全国咨询/投诉热线:444-1124-454
赢咖4LOGO图
始于2009,口口相传的Java黄埔军校
首页 学习攻略 Java学习 小白必看:Java怎么从控制台输入

小白必看:Java怎么从控制台输入

更新时间:2022-06-09 11:15:42 来源:赢咖4 浏览816次

在 Java 中,有四种不同的方式可以在命令行环境(控制台)中读取用户的输入。

1.使用缓冲阅读器类

这是Java经典的取输入方式,在JDK1.0中引入。此方法通过将 System.in(标准输入流)包装在 InputStreamReader 中来使用,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);
	}
}

输入:

赢咖4

输出:

辅助空间:O(1)

赢咖4

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

输入:

GeeksforGeeks
12
3.4

输出:

您输入了字符串 GeeksforGeeks
您输入了整数 12
你输入了 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("You entered string " + name);
	}
}

输入:

GeeksforGeeks

输出:

您输入了字符串 GeeksforGeeks

4.使用命令行参数

最常用于竞争性编码的用户输入。命令行参数以字符串格式存储。Integer 类的 parseInt 方法将字符串参数转换为 Integer。同样,对于执行期间的浮动和其他。args[] 的用法出现在这种输入形式中。信息的传递发生在程序运行期间。命令行提供给 args[]。这些程序必须在 cmd 上运行。

代码:

// Program to check for command line arguments
class Hello {
	public static void main(String[] args)
	{
		// check if length of args array is
		// greater than 0
		if (args.length > 0) {
			System.out.println(
				"The command line arguments are:");
			// iterating the args array and printing
			// the command line arguments
			for (String val : args)
				System.out.println(val);
		}
		else
			System.out.println("No command line "
							+ "arguments found.");
	}
}

命令行参数:

javac GFG1.java
java Main Hello World

输出:

命令行参数是:
你好
世界

 

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>