Какой метод замены можно использовать для замены подстроки из строки? - PullRequest
1 голос
/ 25 декабря 2010

Как я могу заменить его?Я пытался это:

string.replaceFirst(substring, "");

, но он не заменяет, и, поскольку я делаю рекурсивный метод, он дает мне StackOverflowException ..

Есть идеи?

Ответы [ 4 ]

8 голосов
/ 25 декабря 2010

Строка неизменна, что означает, что вы не можете изменить их после инициализации.

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

Ваш код должен быть примерно таким

string = string.replaceFirst(substring,"")
3 голосов
/ 25 декабря 2010

В дополнение к другим ответам о том, что строки неизменны, обратите внимание, что replaceFirst принимает регулярное выражение, а не подстроку. (Эти два могут быть одинаковыми в некоторых случаях, но не во всех). В любом случае это более чем вероятно не связано с вашим StackOverflowException.

2 голосов
/ 25 декабря 2010

Этот метод не изменяет текущую строку. Возвращает новую строку с заменой. String newString = string.replaceFirst (substring, "");

0 голосов
/ 25 декабря 2010

Используйте это:

string = string.replaceAll (substring, replace_string).

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