Удалить все вхождения символа из строки

Я могу использовать это:

String str = "TextX Xto modifyX";
str = str.replace('X','');//that does not work because there is no such character ''

есть ли способ удалить все вхождения символа X из строки в Java?

Я пробовал это и это не то, что я хочу: str.replace('X',' '); //replace with space

9 ответов


попробуйте использовать перегрузка, которая принимает CharSequence аргументы (например, String), а не char:

str = str.replace("X", "");

используя

public String replaceAll(String regex, String replacement)

будет работать.

использование будет str.replace("X", "");.

выполнения

"Xlakjsdf Xxx".replaceAll("X", "");

возвращает:

lakjsdf xx

Если вы хотите что-то сделать со строками Java, Commons Lang StringUtils - отличное место, чтобы посмотреть.

StringUtils.remove("TextX Xto modifyX", 'X');

String test = "09-09-2012";
String arr [] = test.split("-");
String ans = "";

for(String t : arr)
    ans+=t;

Это пример того, где я удалил символ - из строки.


мне нравится использовать RegEx в этом случае:

str = str.replace(/X/g, '');

где g означает глобальный, поэтому он пройдет через всю строку и заменит все X на "; если вы хотите заменить X и x, вы просто говорите:

str = str.replace(/X|x/g, '');

(см. мою скрипку здесь: скрипка)


Привет попробуйте этот код ниже

public class RemoveCharacter {

    public static void main(String[] args){
        String str = "MXy nameX iXs farXazX";
        char x = 'X';
        System.out.println(removeChr(str,x));
    }

    public static String removeChr(String str, char x){
        StringBuilder strBuilder = new StringBuilder();
        char[] rmString = str.toCharArray();
        for(int i=0; i<rmString.length; i++){
            if(rmString[i] == x){

            } else {
                strBuilder.append(rmString[i]);
            }
        }
        return strBuilder.toString();
    }
}

используйте replaceAll вместо replace

str = str.replaceAll("X,"");

Это должно дать вам желаемый ответ.


package com.acn.demo.action;

public class RemoveCharFromString {

    static String input = "";
    public static void main(String[] args) {
        input = "abadbbeb34erterb";
        char token = 'b';
        removeChar(token);
    }

    private static void removeChar(char token) {
        // TODO Auto-generated method stub
        System.out.println(input);
        for (int i=0;i<input.length();i++) {
            if (input.charAt(i) == token) {
            input = input.replace(input.charAt(i), ' ');
                System.out.println("MATCH FOUND");
            }
            input = input.replaceAll(" ", "");
            System.out.println(input);
        }
    }
}

можно использовать str = str.replace("X", ""); Как упоминалось ранее, и вы будете в порядке. К вашему сведению '' не является пустым (или допустимым) символом, но '' есть.

можно использовать .