运行java jar时整数数组作为参数

Posted

技术标签:

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

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

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

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

【问题讨论】:

【参考方案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哎呀 @***soft:是的,如果你没有传入有效的数字,它就会崩溃。对我来说似乎很合理。【参考方案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();

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

【讨论】:

以上是关于运行java jar时整数数组作为参数的主要内容,如果未能解决你的问题,请参考以下文章

在 Java 中将数组作为参数传递时创建数组

用JAVA语言编译:数组中包含n个整数,从其中找出k个最小的数,写出你能想到的最快的方法!!!

数组作为函数参数

Java学习:一维数组作为参数和返回值

为啥对函数的 VLA 数组参数使用星号“[*]”而不是整数?

java数组作为参数传入函数怎么让他不变化