我的程序中出现错误是什么意思?
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at MultiCharacterDisplay.main(MultiCharacterDisplay.java:74)
Java Result: 1
这是我从
得到错误的代码public void setText(String text) {
if (text.length() > segmentDisplayCount) {
text = text.substring(0, segmentDisplayCount);
}
int i = 0;
for (char c: text.toCharArray()) {
segmentDisplays.get(i++).setCharacter(c);
}
}
public static void main(String[] args) {
String text = args[1];
MultiCharacterDisplay display = new MultiCharacterDisplay(text.length(), Color.GREEN);
display.setText(text);
JFrame frame = new JFrame();
frame.setBackground(Color.black);
frame.getContentPane().setBackground(Color.black);
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
frame.getContentPane().add(display);
frame.pack();
frame.setVisible(true);
}
在我运行之后,我得到了一个超出范围的例外,并且到目前为止我不确定,为什么,有人可以向我解释一下吗?
答案 0 :(得分:0)
因为在运行程序时,您没有在命令行中传递至少两个参数。 args [1]中的1表示您发送两个参数,它们占用空格0和1。
正如@Elliot Frisch指出的那样,你为什么要跳过0号空间?如果你想以现在的方式运行它,你需要输入命令行Java MultiCharacterDisplay Test 1
,其中test 1可以是你想要的任何东西,只要你有两个单词,所以它们占用空格0和1 in你的阵列。