gpt4 book ai didi

java - 使用已知属性检索对象数组中的某个数组索引?

转载 作者:行者123 更新时间:2023-12-02 02:42:11 26 4
gpt4 key购买 nike

这是我的程序的一些背景:
为了上课,我正在制作一个假登录系统。
它使用一个对象数组,每个对象都分配了属性。
当我尝试检索用户名/密码对的对象索引时,似乎出现问题。
我想要这个索引号,这样我就可以在用户对象“登录”时对其执行更多操作。
然而,无论用户名密码对如何,获取正确的用户名密码都存在问题。

以下是我尝试检索它的方法:

static int getIndex(User[] users, int index, String userID, String userPin)
{
for (int i = 0; i < users.length; ++i)
{
if (users[i].getUserID().equals(userID) && users[i].getPassword().equals(userPin));
{
System.out.print(i);
index = i;
}
}
return index;

}
}

我添加了一个打印语句来查看它在做什么。
它打印

012

并从要使用的方法中发送最后一个数字,在本例中为 2。或者,如果我告诉它在 if block 内返回,则无论我使用什么用户名,它都只会发回 0。

我还在这个网站上寻找其他解决方案,它们看起来都与我想要做的非常相似,除了一些使用数组列表。我不确定我哪里出错了。
如果可能的话,我希望将对象数组保留为对象数组,或者如果确实需要更改,则可以来回快速转换。

最终,我希望能够根据输入的用户名和密码获取索引(0、1、2)并将其返回以在其他地方用作索引。

下面是其余的代码,它也有一个类可以使用,但我不想用代码轰炸人们。

import java.util.Scanner;
public static void main(String[] args) {
User[] users = new User[3];
users[0] = new User();
users[1] = new User();
users[2] = new User();

users[0].setFirstname("Matt");
users[0].setLastname("Miller");
users[0].setUserID("aaa");
users[0].setPassword("111");

users[1].setFirstname("Susie");
users[1].setLastname("Smith");
users[1].setUserID("bbb");
users[1].setPassword("222");

users[2].setFirstname("Joe");
users[2].setLastname("Jones");
users[2].setUserID("ccc");
users[2].setPassword("333");

Scanner userInput = new Scanner(System.in);
System.out.println("Enter your user ID");
String userID = userInput.nextLine();
System.out.println("Enter your PIN");
String userPin= userInput.nextLine();
int Index = 0;

Index = getIndex(users, Index, userID, userPin);
System.out.printf("Welcome %s %s\n\n", users[Index].getFirstname(), users[Index].getLastname());
}

感谢您的帮助!

最佳答案

我发现您的代码中有两个错误。

  1. 在 getIndex(...) 方法中你放入了; (半栏)if 之后。
  2. 您在 if 条件中使用了“username”而不是“userID”。

这将解决您的问题。

关于java - 使用已知属性检索对象数组中的某个数组索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45287093/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com