我有一个非常简单的程序,带有一个文本框和一个按钮。

告诉用户在框中输入两种颜色的名称,以空格分隔。

例如“红色绿色”
输出将显示在屏幕上,“苹果是带绿点的红色”。

但是,当屏幕上只输入一个单词时,我需要它起作用。我正在使用包含拆分字符串的数组。当我只输入红色时,会出现此错误。

“ AWT-EventQueue-0” java.lang.ArrayIndexOutOfBoundsException:

这是代码:

String userInput = textField.getText();
String[] userInputSplit = userInput.split(" ");
String wordOne = userInputSplit[0];
String wordTwo = userInputSplit[1];
if (wordTwo !=null){
                System.out.println("The apple is " + wordOne + " with " + wordTwo + " dots.");
                } else {
                 System.out.println("The apple is " + wordOne + " with no colored dots.");
                }

最佳答案

可以像这样简单地做一些事情:

String wordOne = userInputSplit[0];
String wordTwo = null;
if (userInputSplit.length > 1){
    //This line will throw an error if you try to access something
    //outside the bounds of the array
    wordTwo = userInputSplit[1];
}
if (wordTwo !=null) {
    System.out.println("The apple is " + wordOne + " with " + wordTwo + " dots.");
}
else {
    System.out.println("The apple is " + wordOne + " with no colored dots.");
}

09-30 17:43