2012-03-13 5 views
5

może ktoś doradzić dlaczego natknąłem indeks z Bouns wyjątku podczas uruchamiania tej metody, aby zastąpić wartość o $ znak?Nie stanie zastąpić wszystko za dolara

E.g. Mijam w wiadomości $$vmdomodm$$

message = message.replaceAll("$", "$"); 

Starałem się patrzeć na tego wątku forum, ale nie mógł zrozumieć treść

http://www.coderanch.com/t/383666/java/java/String-replaceAll

+0

Jesteś replaceing $ o $, co oznacza nic tego nie zmieni. To nie ma sensu. –

+0

'replaceAll' pobiera wyrażenie regularne jako argument, a wyrażenie' $ 'dopasowuje koniec wiersza. Czego dokładnie oczekujesz? –

+0

Przepraszam, że zaktualizowałem go: message = message.replaceAll ("$", "$"); –

Odpowiedz

27

To znak specjalny trzeba użyć znaku ucieczki

Try z tego \\$

i to nie ma sensu w kodzie ar e próby zastąpienia zawartości z tego samego

String message = "$$hello world $$"; 
message = message.replaceAll("\\$", "_"); 
System.out.println(message); 

wyjściu

__hello world __ 

Aktualizacja

String message = "$hello world $$"; 
    message = message.replaceAll("$", "\\$"); 
    System.out.println(message); 

wyjście

$hello world $$ 
+0

Przepraszam, że zaktualizowałem go: message = message.replaceAll ("$", "$"); –

+0

Co próbujesz zrobić w tym kodzie? –

+0

Próbuję przekonwertować kod jednostki html $ na jego odpowiednik kodu ASCII. –

3

Ponieważ nie jesteś naprawdę za pomocą dowolnego wyrażenia regularnego tak zamiast replaceAll należy używać String#replace metody takie jak to:

message = message.replace("$", "$"); 
Powiązane problemy