Как использовать replace (char, char), чтобы заменить все вхождения символа b ничем - PullRequest
14 голосов
/ 10 августа 2011

Как использовать replace (char, char) , чтобы заменить все вхождения символа "b" ничем.

Например:

Hambbburger to Hamurger

РЕДАКТИРОВАТЬ: Существует ограничение, я могу использовать только 1.4.2, что означает отсутствие перегруженной версии замены!

Ответы [ 6 ]

18 голосов
/ 10 августа 2011

Существует также функция replaceAll , которая использует строки, однако обратите внимание, что она выявляет их как регулярные выражения, но для замены одного символа все будет в порядке.

Вот пример:

String meal = "Hambbburger";

String replaced = meal.replaceAll("b","");

Обратите внимание, что переменная replaced необходима, так как replaceAll не изменяет строку на месте, но создает новую с заменой (String является неизменяемым в Java).

Если символ, который вы хотите заменить, имеет другое значение в регулярном выражении (например, символ . будет соответствовать любому символу, а не точке), вам потребуется quote первый параметр, подобный этому:

String meal = "Ham.bur.ger";

String replaced = meal.replaceAll(Pattern.quote("."),"");
6 голосов
/ 10 августа 2011

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

String str = "Hambbburger";
str = str.replace("b", "");

Вам не нужно заменять все, если вы используете Java 6. См. Здесь: replace

3 голосов
/ 10 августа 2011

Попробуйте этот код ....

public class main {
public static void main(String args[]){
    String g="Hambbburger.i want to eat Hambbburger. ";
    System.out.print(g);
    g=g.replaceAll("b", "");



      System.out.print("---------After Replacement-----\n");
      System.out.print(g);

}
}

вывод

Hambbburger.i хочу съесть Hambbburger.--------- После замены ----- Hamurger.i хочу съесть Hamurger.

1 голос
/ 13 июля 2016
String text = "Hambbburger";
text = text.replace('b', '\0');

'\0' представляет NUL в коде ASCII.

0 голосов
/ 24 марта 2019
    String str="aabbcc";
    int n=str.length();
    char ch[]=str.toCharArray();

    for(int i=0;i<n-1;i++)
    {
        for(int j=i+1;j<n;j++)
        {
            if(ch[i]==ch[j])
            {
               ch[j]='*';
            }
        }
    }
    String temp=new String(ch);

    for(int i=0;i<temp.length();i++)
    {
        if(temp.charAt(i)!='*')
        System.out.print(temp.charAt(i));
    }
0 голосов
/ 29 мая 2015

replaceAll в строке не работает должным образом. Всегда рекомендуется использовать replace()

Ex: -

String s="abcdefabcdef";
s=s.replace("a","");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...