Как сравнить атрибут из класса со строкой? - PullRequest
0 голосов
/ 11 апреля 2020

Как правильно написать третью строку? У меня есть массив зивали, который содержит имя, фамилию и другие атрибуты. Мне нужно сравнить только атрибут Name (ime) из каждого элемента массива zivali. Это с равно, = или == и как я могу правильно написать это? Спасибо всем, с нетерпением жду вашего ответа

public boolean zivalObstaja(String ime) {
    for(int i=0; i<zivali.length; i++) {
        **if(zivali[i].ime==(ime))** {
        return true;
        }
    }
    return false;
}

Ответы [ 2 ]

1 голос
/ 11 апреля 2020

Вам нужно использовать String.equals:

if (zivali[i].ime.equals(ime)) {
0 голосов
/ 11 апреля 2020

Существует три способа сравнения строки в java

  1. Методом equals()

    Метод String equals() сравнивает исходное содержимое строки .

  2. Оператором ==

    Оператор == сравнивает ссылки, а не значения.

  3. По compareTo() method

    Метод String compareTo() сравнивает значения и возвращает целочисленное значение, которое описывает, если первая строка меньше, равна или больше второй строки.

, поскольку Вы хотите сравнить исходное содержимое строки. Вы должны использовать первый.

public boolean zivalObstaja(String ime) {
    for(int i=0; i<zivali.length; i++) {
       if (zivali[i].ime.equals(ime)) {
          return true;
       }
    }
    return false;
}
...