【问题标题】:integer array as arguments while running java jar运行java jar时整数数组作为参数
【发布时间】:2015-11-24 17:44:29
【问题描述】:

我有一个简单的问题。我如何在运行 java -jar sample.jar 时将整数数组作为参数传递。整数数组是我的输入。

还有一些其他选项,例如将数组作为逗号分隔值(如 1、2、3)传递,并将字符串值转换为 java 中的整数数组。

我想知道是否还有其他选择。 感谢您的帮助!

【问题讨论】:

    标签: java arrays integer command-line-arguments executable-jar


    【解决方案1】:

    不,真的没有其他选择。命令行参数只是 作为文本传递。某些代码必须在某处将它们解析为整数。

    有多种第三方库可用于解析命令行,但您的入口点肯定会有一个String[] 参数。如果所有您需要的是int[],我只需将每个String 转换为int。在 Java 8 中,这非常简单:

    import java.util.Arrays;
    
    public class Test {
        public static void main(String[] args) {
            int[] array = Arrays.stream(args).mapToInt(Integer::parseInt).toArray();
    
            // Just for example
            for (int value : array) {
                System.out.println(value);
            }
        }
    }
    

    【讨论】:

    • java Test 1 2 3 e 5哎呀
    • @Clashsoft:是的,如果你没有传入有效的数字,它就会崩溃。对我来说似乎很合理。
    【解决方案2】:

    命令行参数是文本。您可以将它们作为逗号分隔的列表传递,您可以传递。或者您可以传递一个文件名,其中包含以文本或二进制形式保存的信息。

    【讨论】:

    • 感谢您的帮助!!
    【解决方案3】:

    最好要求用户使用类似这样的方式提供该参数

    For(int i<0; i<ARRAYSIZE; i++) {
    Scanner reader = new Scanner(System.in);
    System.out.println("Enter the number :");
    array[i] = reader.nextInt();
    }
    

    参数通常用于配置程序执行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-08
      • 2012-04-17
      • 2012-04-10
      • 1970-01-01
      • 2017-10-22
      • 1970-01-01
      • 1970-01-01
      • 2018-05-29
      相关资源
      最近更新 更多