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

遇到Java数组索引错误[重复]

金晨
2023-03-14

我对Java是全新的,有一些C#的背景。我目前正在使用Eclipse在一个程序中运行一个方法,将该方法的参数与文本文件中的用户名和密码进行比较。

但是,在运行代码之后,我收到了一个名为“java.lang.ArrayIndexOutOfBoundsException=1”的错误。我不明白为什么会这样。下面包含代码和文件。我试图只读取上面的三个用户名和密码,下面的其他三个只是填充它并在程序中稍后使用。

**更新:好的。我已经修复了将令牌更改为令牌[0]和令牌1。但还是不行。

**更新号。2:另外,这是当我调用方法时包含的代码。下图:

 s.login("tomrichards", "96744213");


public boolean login (String user, String password) {

  FileReader fr = new FileReader ("auth.txt");
  LineNumberReader r = new LineNumberReader (fr);

  String I = "";
  boolean identity = false;
  String name = "";
  String password = "";

  while ((I = r.readLine()) != null) {

    String [] token = I.split(";");

    name = token[0];
    pass = token[1];

    if (name.equals(user) && pass.equals(password)) {

      identity = true;

      System.out.println("Username " + name + "Password " + pass);

      return true;
    }

    else {

      identity = false;

      return false; 
    }

  }

   r.close();
}

**更新3:我仔细检查了一下,看是否有遗漏“;”但没有。

共有1个答案

解高昂
2023-03-14

您的文本文件有空行

如果i没有任何可拆分的,则必须考虑结果数组的大小。

还要注意了解Java数组是从0索引的

 类似资料:
  • 我犯的错误 我的密码 我试图将数组的最后5个元素存储在temp 2中。那我就换了。有更简单的方法吗?将数组的前五个元素与后五个元素切换?你会如何用for循环切换它们?

  • 问题内容: 我有我必须取消一些索引的数组,所以现在看起来像 如您所见,[2]丢失了,我需要做的就是重置索引,因此它们显示为[0]-[3]。 问题答案: 使用。

  • 我们目前正在使用搜索踢宝石,它的工作原理很棒。最近我尝试在本地开发环境中将elasticsearch升级到7。我得到了它,并使用家庭酿造运行(研究后,我需要运行)。当我去重新索引我的模型之一时,我得到了以下映射错误: 使用elasticsearch 6.8.4时不会出现此错误。有人能给我指一个解决这个问题的资源吗?

  • 问题内容: 我已经声明了我的数组 然后我初始化它的值像 在运行时,它给出错误“数组索引超出范围” 问题答案: 正如评论员@C_X和@MartinR所说,您的数组为空。这是根据需要初始化的方法… …当然,如果您只想零,那么循环现在是多余的!

  • 我是Java新手,我试图连接到我的本地PSql数据库,但没有成功,下面是代码和错误的详细信息。 我有两个文件:dbcontract.java和testconnection.java,我正在使用Eclipse。 java TestConnection.java 错误:

  • 问题内容: 我有一个使用该函数构建的数组,但是看到我如何将其与随机/动态数据一起使用,我看到索引不断变化: 我需要始终从0开始对数组进行排序。我正在测试不同的数据,有时它从0开始,而在其他测试中,它从不同的数字开始。我进行了研究,发现数组从零开始,但似乎仅适用于该用户的特定情况。 我怎样才能做到这一点? 问题答案: $your_new_array = array_values($your_old_