Логика фрагмента кода Java - PullRequest
0 голосов
/ 03 февраля 2012

Я не вижу, что я делаю здесь неправильно. Вот код, с которым у меня проблемы:

String tempSummaryString = "SUMMARY:";
for(int z = 0; z<attributeList.size() ; z++)
{
    System.out.println(attributeList.get(z).substring(0,tempSummaryString.length()));
    if(attributeList.get(z).length() > tempSummaryString.length() && 
       attributeList.get(z).substring(0,tempSummaryString.length() == tempSummaryString)
    {
            event.setTitle(attributeList.get(z).substring(tempSummaryString.length(),attributeList.get(z).length()));
    }
}

Теперь моя проблема в том, что программа никогда не переходит в if (не выполняет метод event.setTitle). Когда я печатаю значение

attributeList.get(z).substring(0,tempSummaryString.length()) 

Я получаю следующее:

РЕЗЮМЕ:

Так что я озадачен, почему он не входит в if! Я не понимаю!

Надеюсь, кто-то может указать на глупую ошибку, которую я совершаю, потому что я действительно не знаю, что еще делать

Ответы [ 5 ]

1 голос
/ 03 февраля 2012

Вы влюбились в старую проблему == против equals(). Вы используете ==, который, в отличие от javascript, выполняет сравнение identity (т.е. это такие же объекты).

Попробуйте это:

attributeList.get(z).substring(0,tempSummaryString.length())
    .equals(tempSummaryString) // equals() not ==

Кроме того, вы должны рассмотреть возможность использования синтаксиса foreach для вашего цикла:

for (String attribute : attributeList) {
    if (attribute.substring... // forget about attributeList.get(z) and even z
}
1 голос
/ 03 февраля 2012

Не сравнивайте строки, используя оператор == (как в attributeList.get(z).substring(0,tempSummaryString.length()) == tempSummaryString), вместо этого используйте метод String.Equals.

0 голосов
/ 03 февраля 2012

Вы сравниваете строки с ==, в то время как вы должны использовать метод класса String '.equals().

0 голосов
/ 03 февраля 2012

Вы должны сравнить строки с равными ().

attributeList.get(z).substring(0,tempSummaryString.length()).equals(tempSummaryString)
0 голосов
/ 03 февраля 2012

Ваша проблема заключается в следующем: attributeList.get(z).substring(0,tempSummaryString.length())== tempSummaryString. Вы сравниваете ссылки , а не содержимое строки . Используйте String.equals(otherString) для этой цели.

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