使用分隔符时StringIndexOutOfBoundsException

时间:2014-05-11 16:39:54

标签: java string delimiter indexoutofboundsexception

我想根据括号将字符串拆分成多个部分。所以,如果我有以下字符串:

在公平(* NAME OF A CITY),我们躺在哪里(* NOUN),

字符串应拆分为:

公平

*城市名称

,我们躺在哪里

* NOUN

我设置了这样的分隔符:

String delim = "[()]";
String [] inputWords = line.split (delim);

因为开头的*中所有大写字母的字符串将被用户输入替换,所以我设置了一个循环:

while (input.hasNextLine())
      {
         line = input.nextLine();
         String [] inputWords = line.split (delim);

            for (int i = 0; i < inputWords.length; i++)
            {
               if (inputWords[i].charAt(0) != '*')
               {
                  newLine.append (inputWords[i]);
               }

               else
               {
                  String userWord = JOptionPane.showInputDialog (null, inputWords[i].substring (1, inputWords[i].length()));
                  newLine.append (userWord);
               }              
            }

            output.println (newLine.toString());
            output.flush();
            newLine.delete (0, line.length());
         }

看起来我的if语句出错:

if (inputWords[i].charAt(0) != '*')

当我运行它时,我得到一个StringIndexOutOfBoundsException:String index超出范围:0。不确定为什么会发生这种情况。有什么建议?谢谢!

1 个答案:

答案 0 :(得分:1)

显然line = input.nextLine();给你一个空白字符串,正如@Marco已经提到过的那样。

在进一步处理之前处理空行。