java - 带有 String[] args 的 Eclipse 命令行参数

标签 java eclipse command-line-arguments

我需要输入一个字符串,对其进行格式化,并以某种格式显示输出。我应该使用“运行”>“运行配置”>“参数”>“程序参数”,并在“程序参数”部分中输入任何字符串(即“测试”)。当我尝试运行 java 应用程序时,我不断在控制台窗口中收到错误消息。如何使用命令行参数?我应该在程序参数中输入什么?任何对此的帮助,将不胜感激。谢谢。

下面是我在控制台窗口中收到的错误消息:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
    at a00752124.data.InventoryReader.read(InventoryReader.java:26)
    at a00752124.Lab2.<init>(Lab2.java:38)
    at a00752124.Lab2.main(Lab2.java:28)

下面是我的主类的源代码:

public class Lab2 {

    /**
     * Main method of Lab2 class
     * 
     * @param args
     */
    public static void main(String[] args) {
        new Lab2(args[0]);
    }

    /**
     * Constructor for Lab2 class
     * 
     * @param itemCount
     */
    public Lab2(String itemCount) {

        Item[] items = InventoryReader.read(itemCount);

        System.out.println(Arrays.toString(items));

        InventoryReport.display(items);
        }

    }

这是我的 InventoryReader 的读取方法的源代码:

public static Item[] read(String input) {
        String[] rows = input.split(":");
        Item[] items = new Item[rows.length];

        int i = 0;
        for (String row : rows) {

            String[] element = row.split("\\|");
            items[i] = new Item(element[0], element[1], Integer.valueOf(element[2]), Float.valueOf(element[3]));
            i++;


        }

        return items;
    }

最佳答案

你有:

String row = "";

然后:

String[] element = row.split("\\|");

分割字符串后元素的大小是多少?

在您假设元素至少有4个项目之后。

items[i] = new Item(element[0], element[1], Double.valueOf(element[2]), Double.valueOf(element[3]));

够清楚了吗?

关于java - 带有 String[] args 的 Eclipse 命令行参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23186169/

相关文章:

java - Java围绕另一个点旋转一个点

java - 日期年份的 JPA 约束

java - 在 Eclipse 中重用另一个 Java 项目中的类的最佳方法是什么?

eclipse - 让 Eclipse 识别 Pylint "pylint.rc"文件

java - 您可以在 java 6 中使用带有枚举列表的 switch 语句吗?

gruntjs - Grunt-命令行参数,不起作用

java - 为什么我无法在 Android 应用程序中的任何位置调用静态方法

java - Java 中的并行计算

java - 如何让 Eclipse 始终首选其他库包含的库的最新版本?

c - 传递 `*` 时命令行参数编号不正确