使用用户输入在java中搜索对象

时间:2013-12-21 20:53:21

标签: java input java.util.scanner member-variables

在创建例如地址簿时,我还想要一种搜索​​它的方法。 想象一下,我选择了这样一个对象:

public class someone {

private static someone [] addressBook = new someone[150];
private String firstName;
private String lastName;
private String address;
    //...

public someone(String firstName, String lastNameame, String adress/*,...*/){
    this.Vorname=firstName;
            //...
}

现在我打算使用用户输入和扫描仪搜索某人。首先,用户应该声明他正在搜索的内容:

public static void searchSomeone(){

System.out.println("What do you want to search for?: ");
Scanner sc1 = new Scanner(System.in);
String userInput1 = sc1.next(); // e.g. userInput1="firstName"

其次,要求用户提供他正在搜索的确切值:

System.out.println("Enter a " + userInput1 + ": ");
Scanner sc2 = new Scanner(System.in);
String userInput2 = sc2.next(); // e.g. userInput2="Peter"  

    for (int i=1;i<150;++i){
            if(getAddressBook[i].**"Value of userInput1"**.contains(userInput2)){ // here is my problem!*
                    System.out.println("Congrats, we've found someone! ");
        }
    }
}
  • 有没有办法使用输入值作为成员变量的调用?

在这种情况下,论证应该“成为”

if(getAddressBook[i].firstName.contains(userInput2)){}

我试图实现另一个方法,比如getInputValue,只返回String,但它在这里不起作用。 如果没有这样的解决方案,我将不得不单独包含每个成员变量的代码,我真的不想这样做!

希望你明白我的想法!请善待我对论坛很新。 :P

1 个答案:

答案 0 :(得分:0)

仅供参考 我想在Java中尝试做的事情是不可能的。但是,Visual Basic提供了一个“var”关键字,也称为“泛型”。对于遇到同样问题的每个人,可以在那里找到解决方案。