Java:访问String数组时的ArrayIndexOutOfBounds

时间:2018-05-16 13:51:26

标签: java arrays string

我有一个带有3个textFields和一个按钮的Jframe,当我按下按钮时,程序会在字符串中存储textFields的值并根据模式检查它们,这里是代码的相关部分:

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { 
    Pattern pat = null;
    Matcher mat = null;
    String file = jTextField3.getText();
    pat = Pattern.compile("[a-zA-Z0-9]{1,8}");
    if(file.contains(".")){
         String [] splitFile= file.split(".");
         String fileName = splitFile[0];
         mat = pat.matcher(fileName);
    }
    else{
         mat = pat.matcher(file);
    }
}

我在String fileName = splitFile[0]上获得了一个ArrayIndexOutOfBounds:0,jTextField的名称是正确的,并且该字段不为空,当我遇到此异常时,我尝试使用'test.txt'

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

带有正则表达式的

String.split个单词,而.在正则表达式中表示any character,您应该使用两个反斜杠来转义它。一个用于编译,一个用于正则表达式。

String [] splitFile= file.split("\\.");