Замена символов в Java - PullRequest
       8

Замена символов в Java

1 голос
/ 26 апреля 2011

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

Я попробовал следующее:

String t = "[javatag]";
String t1 = t;
String t2 = t;
t.replace("\u005B", "");
t.replace("\u005D", "");
t1.replace("[", "");
t1.replace("]", "");
t2.replace("\\]", "");
t2.replace("\\[", "");
System.out.println(t+" , "+t1+" , "+t2);

Результирующий вывод по-прежнему "[javatag] , [javatag] , [javatag]" без замены "[" и "]".

Что я должен сделать, чтобы заменить эти символы "[" и "]"?

Ответы [ 6 ]

7 голосов
/ 26 апреля 2011

String объекты в Java неизменны. Вы не можете их изменить.

Вам нужно:

t2 = t2.replace("\\]", "");

replace() возвращает новый String объект.

Редактировать: Потому что ... я отрываюсь от стаи

И поскольку это так, аргумент на самом деле является регулярным выражением, и вы хотите избавиться от обеих скобок, вы можете использовать replaceAll() вместо двух операций:

t2 = t2.replaceAll("[\\[\\]]", "");

Это избавит от открывающих и закрывающих скобок одним махом.

6 голосов
/ 26 апреля 2011

Строки являются неизменяемыми, поэтому

t.replace(....);

ничего не делает

вам необходимо присвоить вывод некоторой переменной, например

t = t.replace(....);
4 голосов
/ 26 апреля 2011

String s в Java неизменны, то есть вы не можете их изменить. Вместо этого сделайте t1 = t1.replace("]", "");. Это присвоит результат replace t1.

2 голосов
/ 26 апреля 2011

String.replace не работает таким образом. Вы должны использовать что-то вроде t = t.replace("t", "")

1 голос
/ 26 апреля 2011

String.replace () возвращает новую строку после замены необходимых символов. Следовательно, вам нужно сделать это следующим образом:

String t = "[javatag]";
t = t.replace("[","");
t = t.replace("]","");
0 голосов
/ 26 апреля 2011
t.replace(....);

дает вам строку (возвращает строку)

Вы можете переназначить имя переменной источника новой строке

и старая строка будет позже собрана мусором :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...