当前位置: 首页 > 知识库问答 >
问题:

数组“越界”[重复]

壤驷骁
2023-03-14

我使用String[3]数组来存储来自4个JTextFields的用户输入,然后将该数组输出到一个txt文件:

String[] userInfo = new String[3];
    userInfo[0] = sourceTextField.getText();
    userInfo[1] = usernameTextField.getText();
    userInfo[2] = passwordTextField.getText();
    userInfo[3] = emailTextField.getText();
    for (String userInfo1 : userInfo) {
        try 
        {
            BufferedWriter writer = new BufferedWriter(new FileWriter("C:\\Users\\Peace Infinity\\Desktop\\[programming]Projects\\DataFiles\\PasswordRepository.txt", true));
            String s;
            s = userInfo1;
            writer.write(s + " ");
            writer.flush();
        }catch (IOException ex) 
        {
            Logger.getLogger(ADD_dialogBox_v1.class.getName()).log(Level.SEVERE, null, ex);
            JOptionPane.showMessageDialog(null, "Error processing file!");
        }
    }

有人能告诉我为什么我会得到异常“数组索引越界”吗?谢谢。

共有1个答案

阚英武
2023-03-14

声明数组时,提供该数组的长度/大小。正如您在代码中所做的那样,数组从索引0开始,但您试图将一个值赋给一个“越界”的索引--第四个索引。

new String[3] // index 0,1,2
new String[4] // index 0,1,2,3
 类似资料:
  • 我一直在四处寻找是否有任何东西可以帮助我,但我不太了解人们的回答,任何我所了解的似乎都不能解决问题!所以基本上正如标题所说,我得到了一个数组索引越界异常,但我不知道为什么。非常感谢任何帮助。 代码:

  • 问题内容: 在我的游戏代码中,我尝试添加一张手牌。一旦我做完了,我的数组就超出了范围。一切看起来都不错,但也许我缺少了一些东西。 仅供参考,一个和两个是Player实例。来自Main类的相关代码(对格式感到抱歉。我很想将其传输到Stack Overflow): 卡类: 玩家等级: 问题答案: 问题出在你的循环上 没有其他任何值可设置,因此此循环不断循环,直到所有玩家拥有超过52张牌为止。一旦某人拥

  • 这里是Java/C开发者。试图学习C语言,但我对数组的内存分配感到困惑。 这里发生了什么? 输出 怎么会这样?为什么我不能越界异常或程序崩溃?我能无限地做到这一点吗?在这种情况下,我的数组长度是多少?如果我的数组允许我将值放在界限之外,那么通过分配内存有什么意义?这对我来说毫无意义。

  • 这是我的代码: 该程序的目的是要求用户输入一个字符串,然后统计字符串中每个字符的使用次数。 当我去编译程序时,它工作正常。当我运行程序时,我可以在弹出框中输入字符串,但是在我提交字符串并按确定后,我得到一个错误,说 我不完全确定问题是什么或如何解决。

  • 这似乎微不足道,但也许我对向量的理解并不是它应该是的。我在这段代码上得到[java.lang.ArrayIndexOutOfBoundsException:Array index out of range:1]。错误发生在第3行。既然look是基于向量的大小,那么数组怎么会越界呢? 方法“getChangeSets()”返回一个列表。该列表最初是作为向量创建的。

  • 我正在尝试学习异常处理。我似乎找不到String[]a=names(scnr);若要在超出3个元素时抛出超出界限的异常,请执行以下操作。我知道,大多数人都讨厌越界的错误,而我正在努力让它发生,我一辈子都搞不清我到底做错了什么。一整天都在搜索各种东西。但我似乎找不到我要找的东西。所以我需要一些帮助和视角。 因此,我输入一个完整的字符串,我根据逗号和空格对其进行定界(修剪和拆分),然后将这些片段存储到