2012-03-24 2 views
0

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

Это то, что у меня есть

while (m.find()) { 
    if (m.group(0) == "default.jpg") 
     //Do nothing 
    } else { 
     allMatches.add(m.group(0)); 
     count++; 
    } 
} 

Тогда я пытаюсь

int i = 0; 
while (i < allMatches.size()) { 
    if (allMatches.get(i) == "default.jpg") { 
     allMatches.remove() 
    } 
    i++; 
} 

Также не работает. И, наконец, при настройке изображения я пытаюсь это сделать

if (allMatches.get(position).toString() == "default.jpg") { 
    allMatches.remove(position);     
    bitmap = null; 
} 

Почему все это не работает? default.jpg определенно подбирается, поскольку он не удаляется из gridview.

В любом случае, если кто-нибудь знает, как это сделать, остановите следующее выражение, выбрав «default.jpg» и «video? View», и я хотел бы услышать ваши предложения.

String expr = "(?<=v=)[a-zA-Z0-9-_]{11}(?=&)| 
    (?<=[0-9]/)[^&\n]{11}|(?<=v=)[^&\n]{11}"; 

ответ

3

Использование .equals

if (allMatches.get(position).toString().equals("default.jpg")) { 
    } 

Может быть, это работает, и если Dont ,, отправлять allMatches список ваш массив с element....

+0

Это отлично работает. ура – CitizenSmif

0

Вы ошибаетесь в сравнении строк в Java. Строки в java - это объекты. Их нельзя сравнивать с оператором ==. Используйте метод Equals:

str1.equals(str2) 

В вашем случае:

"default.jpg".equals(allMatches.get(i)) 

При сравнении строк с помощью метода == вы на самом деле сравнивать ссылки, а не ценности.

0

Вы не можете сравнить строки в Java с «==» вы должны использовать string.equals("stringtomatch")

Просто уточнить «==» на строки сравнения адресов памяти не фактическое значение строки. Таким образом, вы можете использовать «==», но это не приведет к ожидаемому значению.

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