4

我目前有这段代码需要用户输入来伪化一些单词,以便稍后发送和提交对整数的混淆。我只需要获取用户输入。任何人都有一个很好的api来源来获取这个?我想我应该寻找 System. 命令。

提前致谢 :)

4

4 回答 4

12

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

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

https://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html

于 2013-04-10T00:05:31.443 回答
2

你在找这个吗?正如您询问有关通过命令行获取输入的问题,因此,如果您通过命令行运行 java 程序并希望向其传递一些输入,它们将由argsin 中的参数接收main看这里

呼应命令行参数

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

public class Echo {
    public static void main (String[] args) {
        for (String s: args) {
            System.out.println(s);
        }
    }
}
于 2013-04-10T00:10:27.867 回答
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 子句并跳过将 validData 设置为 true。这个循环直到输入有效数据。

希望这可以帮助。

于 2013-04-10T00:27:58.837 回答
1

是的,System.in对于少量可预测输入的命令可以正常工作。如果您想要更专业/更强大的机制,Apache 有一个不错的小工具。

见:http ://commons.apache.org/proper/commons-cli/

于 2013-04-10T00:13:25.287 回答