我需要输入一个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;
}
答案 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]));
足够清楚?