Можно ли как-то изменять много символов в одном replace()

Можно ли как-то изменять много символов в одном replace()?

Например, если я хочу заменить ещё и * на ;.

String str1 = str.replace("#", ";");

Ответы (2 шт):

Автор решения: Aziz Umarov

Используйте RegEx

str = str.replaceAll("[0-9]", ";");

Ну или вашем случае

str = str.replaceAll("[*#]", ";");
→ Ссылка
Автор решения: Podushkoved

Метод replace заменяет все вхождения в текущей строке литерала (т.е. последовательности символов) на другой литерал.

Метод replaceAll заменяет все вхождения в текущей строке литералов, соответствующих переданному регулярному выражению, на другой литерал.


В вашем случае лучше использовать replaceAll:

String str1 = str.replaceAll("[*#]", ";");

Либо можно использовать цепочку replace:

String str1 = str.replace("#", ";").replace("*", ";");

UPD: Есть ещё старый метод replace, кототый заменяет все вхождения в текущей строке определенного символа char на другой символ char:

String str1 = str.replace('#', ';').replace('*', ';');
→ Ссылка