eclipse 可以模拟用户输入吗?

Seb*_*ian 1 java eclipse java.util.scanner

我想编写一个接受用户输入的程序。到目前为止我很好。但是用户输入的数量会失控,并且在调试时手动完成是不切实际的。有没有可能让 eclipse 为我做用户输入?如果是,它看起来如何?用户输入是一堆以不同方式分隔的整数。有没有办法继续使用扫描仪,因为我也想测试扫描仪?

Cei*_*cko 5

您的main方法有一个 String 数组作为参数传入,该数组可以在应用程序运行时“提供”给应用程序。

是的,您可以在 Eclipse 中的运行配置中执行此操作: 在此处输入图片说明

在上图中,我们将参数“10”、“103”和“54”传递给程序。

示例示例摘录:

public static void main(String[] args){

    // Assuming we passed in the previously mentioned 3 arguments.
    System.out.println(args[0]); // 10
    System.out.println(args[1]); // 103
    System.out.println(args[2]); // 54

}
Run Code Online (Sandbox Code Playgroud)

但是请注意,这些实际上是String对象,因此如果您需要整数,请务必使用如下调用转换它们:

int myInteger = Integer.parseInt(args[0]); // Will try to parse args[0] as int.
Run Code Online (Sandbox Code Playgroud)

不幸的是,您似乎不得不放弃Scanner这种方法,但实施这种方法应该不会太难。

或者,您可以Scanner将代码块注释掉,暂时用这种方法代替它进行测试,然后一旦您验证了算法的正确性,您就可以切换回这种Scanner方法,以在演示或非日食情况下恢复为手动输入。

编辑 :

正如@Paco Abato所提出的,一个很好的解决方案Scanner是根据启动时是否传入任何参数来分支输入处理。

示例示例摘录:

public static void main(String[] args){

    if(args.length > 0) {
        // Process the args[] array.
    } else {
        // Process input with Scanner
    }

}
Run Code Online (Sandbox Code Playgroud)