2010-08-02 1 views
0

Я сравниваю значения листа excel для записи значений, возвращаемых из базы данных, и одна запись проходит через оператор if, когда она должна вызывать оператор if.Сравнение строк, проходящих через оператор if, если это не должно

если заявление выглядит следующим образом:

if (record.value.equals(cellVal) == false) 

    { 
     record.value = cellVal 
     record.modifyUser = userId 
     //dataService.updateManualEntry(record) 
     println "UPDATING ${record.value.equals(cellVal)}" 
     println "record value: ${record.value}"         
     updatedCount++ 
     }else{ 
      println "NOT UPDATING [ [ ${record.value.length()} ] + [${cellVal.length()}]" 

     } 

      } 

Println показывает, что значение println "UPDATING ${record.value.equals(cellVal)}" оценивает, чтобы быть правдой, и в этом случае я не понимаю, почему она проходит через если заявление. Кроме того, длина строки равна 0.

Могу ли я получить вторую пару глаз и выяснить, почему истинное значение будет проходить через это утверждение if?

+0

Вы печатаете 'ОБНОВЛЕНИЕ $ {record.value.equals (cellVal)}' _after_ вы сделали 'record.value = cellVal'. Распечатайте его, прежде чем вы его измените, и покажите нам, какие строки он терпит неудачу. Кроме того, окружайте значения, которые вы печатаете, например. a ', так что легче увидеть пробелы – nos

+0

, которым нужен tdwtf :) – fearofawhackplanet

+0

Какова ценность cellVal? Что это за язык? Извините, отметьте Java, конечно ... но где ваши точки с запятой? Js? –

ответ

4

Ваш printlns произойдет после вы изменили значение, чтобы соответствовать.

3

Здесь:

record.value = cellVal 

Вы установили record.value в cellVal внутри if блока. Вот почему println возвращает true.

2

Println показывает истинный becoz 1-й линии в вашей, если заявление

record.value = cellVal

попробовать перед печатью такое же значение, если заявление.

0

если -> record.value.equals (cellVal) дать и ложные U сравнения (ложь) == ложь, естественно, ложь всегда = ложно, следовательно, она будет проходить через

2, смотреть на ур код ,

record.value = cellVal

record.modifyUser = идентификатор пользователя

//dataService.updateManualEntry(record)

Println "ОБНОВЛЕНИЕ $ {record.value.equals (cellVal)}"

U назначить record.value = cellVal перед и сделать печать. Потому что это будет верно.

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