2012-06-27 2 views
0

Привет, я пытаюсь заменить часть строки (html), но она не работает. И да, я настраиваю его на новую переменную.s.replaceAll() не работает Java/AndroidSDK

String newsBody = item.htcontent.replaceAll("resolveuid", "www.urlnotimportant.nl/resolveuid"); 

Почему это не работает?

Я думаю, что это связано с тегами [img /]. Внутри них есть строка «resoluid», которую я пытаюсь заменить.

+0

не является replaceAll() ожидает регулярное выражение? –

+4

«Это не работает» не является хорошим описанием того, что происходит. Пожалуйста, дайте подробную информацию о том, что вы ожидаете от того, что на самом деле происходит. –

+0

@bitbox: Да, это означает, что 'resoluid' является допустимым регулярным выражением, требующим' r', за которым следует 'e' и т. Д. @Jens Vossnak: Какова ценность переменных 'item.htcontent' и' newsBody'? – npinti

ответ

0

Метод ReplaceAll() принимает в качестве первого параметра регулярное выражение. Возможно, ваш первый параметр не соответствует тому, как вы ожидаете. См. http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/String.html#replaceAll(java.lang.String, java.lang.

+0

ОП, скорее всего, просто пытается заменить одну строку на другую. Sice каждая строка также является регулярным выражением, которое представляет собой набор допустимых строк длины 1, тот факт, что метод принимает регулярные выражения, поскольку первый аргумент не имеет особого значения, IMHO. – predi

+0

Тем не менее, 'String.replace' специально предназначен для замены литеральных строк, поэтому OP также может использовать его здесь. –

+0

Спасибо, я попробую это. –

0

Этот код является правильным реализация предваряя ссылки изображения из этого:

<img src="resolveuid/832c2b08888aba0faccae78a14e9c764" alt="photo"> 

к этому:

<img src="www.urlnotimportant.nl/resolveuid/832c2b08888aba0faccae78a14e9c764" alt="photo"> 

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

То, что вы должны сделать, чтобы назначить модифицированную строку обратно, как это после замены:

item.htcontent = newsBody; 
+0

Я знаю, что это должно работать, поскольку я делаю то же самое в adobe Air app, и изображения всегда загружаются. –

+0

@JensVossnack - Оказывается, последние версии Plone и т. Д. Могут обрабатывать 'resoluid' замены в середине URL-адреса. Обновленный ответ основан на этом. –

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