2012-03-13 3 views
5

может ли кто-нибудь посоветовать, почему я столкнулся с индексом исключения из исключения bouns при запуске этого метода, чтобы заменить значение на $?Невозможно заменить все на знак доллара

E.g. я передать в сообщении $$vmdomodm$$

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

Я попытался посмотреть на этой ветке форума, но не мог понять содержание

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

+0

Вы replaceing $ с $, которые не означает, что ничто не может измениться. Это не имеет смысла. –

+0

'replaceAll' принимает регулярное выражение в качестве аргумента, а выражение' $ 'соответствует концу строки. Что именно вы ожидаете в результате? –

+0

Извините, я обновил это сообщение: message = message.replaceAll ("$", "$"); –

ответ

27

Это специальный символ, который нужно использовать экранирующий символ

Try с этим \\$

и это не имеет смысла в вашем коде, е пытается заменить содержание с таким же выходом

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

__hello world __ 

Update

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

выход

$hello world $$ 
+0

Жаль, что я обновил это сообщение: message = message.replaceAll ("$", "$"); –

+0

Что вы пытаетесь сделать в этом коде? –

+0

Я пытаюсь преобразовать код объекта html $ в его эквивалент кода ASCII. –

3

Так как вы на самом деле не с помощью какого-либо регулярного выражения, так вместо replaceAll вы должны использовать String#replace метод, как это:

message = message.replace("$", "$"); 
Смежные вопросы