2012-06-06 4 views
0

Когда я запускаю это, оператор if всегда возвращает false и, следовательно, не запускает две строки, которые у меня есть. Вы можете видеть в приведенной выше строке, что я проверил, действительно ли слова одинаковы, и они идентичны. Так что-то здесь, что я совершенно не замечаю, или я просто ввернулся? Если это важно, я использую eclipse.Вы видите, почему это утверждение if работает неправильно?

boolean wordHasElement = false; 
for (int firstdimension = 0; firstdimension <= wordnumber-1; firstdimension++){ 
    System.out.println("-"+ words[firstdimension][0] + "-" + linewords[linewordnumber] + "-"); 
    if (words[firstdimension][0] == linewords[linewordnumber]){ 
     System.out.println("Worked"); 
     wordHasElement = true; 
    } 
} 
+3

Пожалуйста, исправьте количество пробелов! –

ответ

11

если (слова [firstdimension] [0] == linewords [linewordnumber]) {

Должен быть заменен

if (words[firstdimension][0].equals(linewords[linewordnumber]){ 
  • == проверяет, если один объект совпадает с другим, который вас действительно не интересует.
  • equals(...) проверяет, имеют ли две строки одну и ту же строку - те же буквы в одном порядке - и это важно. Или вы можете использовать equalsIgnoreCase(...), если дело не имеет значения.
+0

Я объединил наши два ответа и просто удалил мой, если все в порядке. 1+. –

+0

Выглядит отлично, спасибо. –

+0

Хмм хорошо спасибо :) Так что же именно это я проверял раньше? (Просто пытайтесь полностью понять) – JKJones

Смежные вопросы