带有String [] args的Eclipse Commandline参数

时间:2014-04-20 18:33:27

标签: java eclipse command-line-arguments

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

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

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;
    }

1 个答案:

答案 0 :(得分:2)

你有:

String row = "";

然后:

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

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

在您认为element至少包含 4 项目之后。

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

足够清楚?