【问题标题】:Array "out of bounds" [duplicate]数组“越界”[重复]
【发布时间】:2014-11-16 22:49:57
【问题描述】:

我正在使用一个 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!");
        }
    }

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

【问题讨论】:

    标签: java arrays jtextfield filewriter bufferedwriter


    【解决方案1】:

    当您声明一个数组时,您需要提供该数组的长度/大小。 正如您在代码中所做的那样,数组从索引 0 开始,但您正在尝试分配一个值 到“超出范围”的索引 - 第四个索引。

    new String[3] // index 0,1,2
    new String[4] // index 0,1,2,3
    

    【讨论】:

    • 谢谢,我得到了它的工作......实际上这是一个愚蠢的问题。对不起。
    【解决方案2】:

    解决方法很简单

    String[] userInfo = new String[4];
    

    【讨论】:

      【解决方案3】:

      您正在使用较小的数组.... 这样做

      String[] userInfo = new String[4];
      

      我建议您使用Arraylist,因为它不需要任何尺寸来声明并且可以容纳任意数量的项目。

        ArrayList<String> userInfo = new ArrayList<>();
          userInfo.add(sourceTextField.getText());
          userInfo.add(usernameTextField.getText());
          userInfo.add(passwordTextField.getText());
          userInfo. dd(emailTextField.getText());
           for (String userInfo1 : userInfo) {
              try 
              {.......
                 ............
      

      其余的代码也相应地处理......

      【讨论】:

      • 你欢迎@noBrainer。如果这真的对您有帮助,请不要忘记加一并接受答案,因为它将帮助这篇文章的未来访问者。
      猜你喜欢
      • 2021-12-30
      • 1970-01-01
      • 2015-06-28
      • 2014-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-28
      • 1970-01-01
      相关资源
      最近更新 更多