Java:访问字符串数组时的ArrayIndexOutOfBounds [重复]

Posted

技术标签:

【中文标题】Java:访问字符串数组时的ArrayIndexOutOfBounds [重复]【英文标题】:Java: ArrayIndexOutOfBounds when accessing String array [duplicate] 【发布时间】:2018-10-26 14:51:49 【问题描述】:

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

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】:

String.split 带有正则表达式的单词,而. 在正则表达式中表示any character,您应该使用两个反斜杠对其进行转义。一个用于编译,一个用于正则表达式。

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

【讨论】:

以上是关于Java:访问字符串数组时的ArrayIndexOutOfBounds [重复]的主要内容,如果未能解决你的问题,请参考以下文章

数组访问越界

数组访问越界

数组访问越界

数组访问越界

使用 jOOQ 执行 PL/SQL 函数时的 Java 空指针

类具有默认访问权限时的 Java 成员访问权限