Распечатать параметр объекта - PullRequest
0 голосов
/ 21 января 2020

WordDef - это объект, который принимает String word и String definition в качестве параметров. dictionary - это ArrayList из WordDef объектов. Мне нужно распечатать только параметр definition, основанный на word пользовательских данных. Вот что я пробовал:

//in a separate class
public String toString() {

return word + "\t" + definition;
}
String d = "";
System.out.println("Enter the word you would like to see the definition of: "); 
String w = reader.nextLine();
            for(int x = 0; x < dictionary.size(); x++) {
                if(dictionary.get(x).equals(w)) {

                    d.toString(); //I know this wouldn't work but I was trying to see if anything would print at all

                }
                System.out.println("The definition for " + w + " is: " + d.toString());

Я не уверен, как искать определенные c параметры объекта. Спасибо

Ответы [ 2 ]

1 голос
/ 21 января 2020

Карта или HashMap были бы лучшим способом для go для эффективности и удобства, но если вы хотите использовать ArrayList, используйте:

if(dictionary.get(x).getWord().equals(w) {
System.out.println(dictionary.get(x).getDefinition())
} 

getWord () и getDefinition () как вы могли определить методы доступа. Если слово и определение не являются частными, вы можете получить к ним доступ напрямую с помощью .word и .definition. Но вы, вероятно, хотите, чтобы они были частными. Вам просто нужен код для доступа к свойствам этого индекса в ArrayList.

0 голосов
/ 21 января 2020

Приведенный ниже код работает при условии, что для элемента класса definition есть метод получения.

System.out.println("Enter the word you would like to see the definition of: "); 
String w = reader.nextLine();
for(int x = 0; x < dictionary.size(); x++) {
    if(dictionary.get(x).word.equals(w)) {
      System.out.println("The definition for " + w + " is: " + dictionary.get(x).getDefinition());            
    }
}

Если класс WordDef выглядит примерно так:

public  class WordDef {
    private String word;
    private String definition ;

    public Student(String word, String definition){
        this.word=word;
        this.definition=definition;
    }

    @Override
    public String toString(){
        return "Word : "+word+", Definition : " +definition;
    }
}

Вы можете переопределить toString для WordDef и позвоните System.out.println(wordDefObject), это будет работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...