如何在Java中通过命令行获取输入?

如何在Java中通过命令行获取输入?,java,Java,我目前有这段代码,需要用户输入伪化一些单词,以便稍后发送并提交对整数的模糊处理。我只需要获得用户输入。有谁有一个好的api源可以从中得到这个?我想我应该找一个系统。命令 提前感谢:)在Java 5.0中实现了Scanner类,以简化输入: Scanner input=新的扫描仪(System.in)系统in将允许控制台输入 Scanner sc = new Scanner(System.in); int i = sc.nextInt(); /* will wait for input then

我目前有这段代码,需要用户输入伪化一些单词,以便稍后发送并提交对整数的模糊处理。我只需要获得用户输入。有谁有一个好的api源可以从中得到这个?我想我应该找一个系统。命令


提前感谢:)

在Java 5.0中实现了
Scanner
类,以简化输入:

Scanner input=新的扫描仪(System.in)
系统in将允许控制台输入

Scanner sc = new Scanner(System.in);
int i = sc.nextInt();
/* will wait for input then assign it to the variable,
 * in this case it will wait for an int.
 */
System.out.println(i); // will print the variable

你在找这个吗?当您询问如何通过命令行获取输入时,如果您通过命令行运行java程序并希望向其传递一些输入,则
main
中的
args
参数将接收这些输入

回显命令行参数

Echo示例在一行上单独显示其每个命令行参数:

public class Echo {
    public static void main (String[] args) {
        for (String s: args) {
            System.out.println(s);
        }
    }
}

是的,
System.in
可以很好地处理少量可预测输入的命令。如果您想要更专业/更健壮的机制,Apache有一个很好的小工具


请参阅:

您可能需要使用Scanner类:java.util.Scanner

基本设置很简单:

Scanner scan = new Scanner(System.in);
int number = scan.nextInt();
这将设置一个scanner对象,并使scanner从默认输入流中获取一个整数。 但是,这并不检查用户是否输入了“良好数据”。如果用户输入的不是数字,则会导致错误。您可能希望在用户输入有效数据之前包含一个循环

以下是相同的代码,但带有错误检查:

Scanner scan = new Scanner(System.in);
boolean validData = false;
int number=0;
do{
    System.out.println("Enter a Number");
    try{
        number = scan.nextInt();//tries to get data. Goes to catch if invalid data
        validData = true;//if gets data successfully, sets boolean to true
    }catch(InputMismatchException e){
        //executes when this exception occurs
        System.out.println("Input has to be a number. ");
    }
}while(validData==false);//loops until validData is true
此程序将要求用户输入一个数字。如果用户输入了错误的数据,将抛出InputMismatchException,将程序带到catch子句,并跳过validData设置为true。 这将循环,直到输入有效数据


希望这有帮助

扫描仪是否必须作为某个类的一部分引用?另外,系统是否自动导入?
system.in
将自动包含。@user
system
属于
lang
包,该包中的所有类都将自动包含。哦,等等。java.src.lang.System是完整路径吗?@user No路径是
java.lang.System
,但您不必导入它。这完全无关。我在寻找输入,而不是输出。你不认为输入是通过'args'参数从命令行来的吗???这是从命令行获取输入并在控制台上打印的方法。你还问了什么?没有输入?如何从字符串[]args获取输入?我的问题是我想合并用户输入,这样我就可以使用它和用户比较命令。你知道如何从命令行运行java程序吗?当您有一个java程序,比如HelloWorld.java,并且希望使用命令行运行它并获取用户输入时,您可以打开cmd,转到HelloWorld.java所在的目录,运行代码并在命令行中键入用户输入。这就是我的答案,因为您的问题是如何从命令行获取输入。明白了吗?看看这里,如果你需要知道如何从命令行运行程序;啊,是这样。你这个怪人。是的,显然有两条解析命令行输入的路径,一条来自apachecommons的路径是负输入。今天越来越陌生了。谢谢你的回复!请注意,你应该在这里,在这个网站上发布有用的答案,否则你的帖子有被删除的风险。如果您愿意,您仍然可以包含该链接,但仅作为“参考”。答案应该是独立的,不需要链接。否决票可能是因为你在这里键入的内容并不能立即看出你的答案是相关的;但是如果你有更多的话,它会被收录。谢谢你的解释。我以前也犯过一次这样的错误。然而,在本例中,使其工作“正常”所需的代码,以及使用简单化方法的警告,以及其他人概述的指定方法的替代方法,应将其移出该括号。我喜欢简明扼要,也讨厌别人对变化的解释被“中国人耳语”了。
Scanner
类包括了
hasNext
hasNextInt
hasNextBoolean
等方法,这让它变得容易多了。