2013-08-13 4 views
0

Мне нужно заменить все виды строки, которые выглядят как {\'\i} всего на iкак заменить ангел кронштейн строку

Я уже прочитал Java String ReplaceAll method giving illegal repetition error?

Так что я попытался

String word = "something{\\\'\\\i}".replaceAll("\\\\{\\\'\\\i}", "DONE"); 

, но это не работает, может ли кто-нибудь мне помочь?

+0

Почему вы пытаетесь заменить другую строку, отличную от той, которую вы указали в исходной строке? – christopher

ответ

1

replaceAll ожидает регулярных выражений. Вместо того, чтобы пытаться получить право RegEx, используйте replace.

String word = "something{\\'\\i}".replace("{\\'\\i}", "DONE"); 
+0

ОК, вы правы, спасибо, но если мне нужно их заменить? это всего лишь часть текста ... поэтому мне нужно спросить, содержит ли он все еще и «заменить» еще раз, пока он не будет котаин? – fatevil

+0

'replace' заменяет все вхождения текста. – Cephalopod

+0

О, теперь я вижу его, спасибо;) – fatevil

0

Я думаю, вы должны использовать

String word = "yourtexthere" 
String newWord = word.replaceAll("{\'\i}", "i"); 
+0

нет, проблема не в написании, это символ '{' – fatevil

+0

Не знаю, что вы имеете в виду ^^. Используйте word.replaceAll (% WHATYOUWANTTOREPLCE%,% WHATITSHOULDBE%). Если вы хотите, чтобы все «{» заменили использование: word.replaceAll («{», «i»), например. – Gerret

0

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

final String a = "text{\\'\\i}"; 
System.out.println(a); 
System.out.println(a.replace("{\\'\\i}", "i")); 
0

Вы должны просто использовать функцию вместо replaceAll замените последний ожидает регулярное выражение в качестве аргумента, Ex:

String word = "something{\\'\\i}".replace("{\\'\\i}", "'i' /* or i */"); 

\ должен быть сбежал в java, вот почему у нас есть \\

0

С replaceAll использует регулярное выражение, вам нужно бежать все соответствующие символы ({}\), как это

"something{\\'\\i}".replaceAll("\\{\\\\'\\\\i\\}", "i"); 

\\\\ потому, что вы Ускользающий \ первый в Java String, то в регулярном выражении, чтобы соответствовать литерал \.

-1
<script> 
    word = "{\'\i}"; 
    a = word.replace("{"," ""); 
    a = a.replace("}", ""); 
    a = a.replace("'", ""); 

</script> 

Просто создайте другое правило с символом, который хотите заменить. Не очень хорошее решение, но его самое «чистое».

+0

Это заменит всевозможные другие вещи, скажем '{1}', любой другой экземпляр '' 'и т. Д. И т. Д. Это не самый« чистый »любой простите воображение, он просто рано или поздно будет ошибаться. – Thor84no

+0

это заменит только любые персонажи, которые он хочет. Просто создайте правило для каждого из них ... если исходная строка {1}, результат будет 1, и это то, что требуется. Или, по крайней мере, я так думал – Tiago

+0

Но он не хочет удалять всех этих символов без каких-либо ограничений, он хочет удалить эти символы, если они вокруг 'i'. При определенных условиях ваш код будет иметь множество побочных эффектов; рассмотрим, например, (произвольно выбранную) String '" {x} 'hello' {\ '\ i} "' - ваше решение приводит к «x hello \\ i» ', желаемый результат -' '{x}' привет "i". Обратите внимание, что ваше решение даже не удаляет обратную косую черту. – Thor84no

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