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

时间:2013-04-10 00:04:24

标签: java

我目前有这个代码需要用户输入伪ify发送一些单词并在稍后对整数提交模糊处理。我只需要获得用户输入。任何人都有一个很好的api源来得到这个?我想我应该寻找系统。命令。

提前致谢:)

4 个答案:

答案 0 :(得分:8)

在Java 5.0中实现了Scanner类,以使输入更容易:

Scanner input = new Scanner(System.in) System.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

http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Scanner.html

答案 1 :(得分:2)

你正在寻找这个吗?当您询问如何通过命令行获取输入时,如果您通过命令行运行java程序并想要传递一些输入,则args中的main参数会接收它们。 look here

回应命令行参数

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

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

答案 2 :(得分:2)

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

基本设置很简单:

Scanner scan = new Scanner(System.in);
int number = scan.nextInt();

这会设置一个扫描仪对象,并使扫描仪从默认输入流中获取一个整数。 但是,这不会检查用户是否输入了“良好数据”。如果用户输入除数字以外的任何内容,则会导致错误。您可能希望在用户输入有效数据之前包含循环。

这是相同的代码,但有错误检查:

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子句并将skipData设置为true。 这将循环,直到输入有效数据。

希望这会有所帮助。

答案 3 :(得分:0)

是的,System.in适用于少数可预测输入的命令。如果你想要一个更专业/更强大的机制,Apache有一个很好的小工具。

请参阅:http://commons.apache.org/proper/commons-cli/