Java:替换字符串字

时间:2013-03-01 05:49:13

标签: java

我有一个字符串为“ ISTERC Mini BAT

问题是Word Mini可能会出现区分大小写的字母(Mini或MINI)

要求是,我需要从字符串中删除 Mini / MINI 这个词,它应该看起来像“ ISTERC BAT ” (在Mini之前还删除了额外的空格)

我试过这种方式

public class Test {

    public static void main(String args[]) {

        String Symbol = "ISTERC Mini BAT";

        if (Symbol.contains("Mini") || Symbol.contains("MINI")) {
            Symbol = Symbol.replace(" Mini", "");
        }

        System.out.println(Symbol);

    }

}

问题是我应该写另一个if condition来处理if(“MINI”)

在回复

之后尝试这种方式
public class Test {

    public static void main(String args[]) {

        String Symbol = "ISTERC Mini BAT";

        if (Symbol.contains("(?i)mini")) {

            Symbol = Symbol.replaceAll(" (?i)mini", "");
        }

        System.out.println(Symbol);

    }

}

4 个答案:

答案 0 :(得分:2)

使用String#replaceAll并传递正则表达式(?i)word(?i)打开不区分大小写

Symbol = Symbol.replaceAll("(?i)mini\\s+", "");

答案 1 :(得分:1)

尝试

Symbol = Symbol.replaceAll("(?i) Mini", "");

(?i)会使replaceAll方法忽略字符区分大小写。

它适用于MINI,MiNi和任何其他可能性。

修改#1: System.out.println(Symbol.contains("(?i) Mini", ""));将导致布尔响应false,因为它不会使用正则表达式。它会将(?i) Mini视为字符串本身。

答案 2 :(得分:1)

public class Test {
    public static void main(String args[]) {
        String Symbol = "ISTERC MINI BAT";
        Symbol = Symbol.replaceAll("( mini| MINI)","");  
        System.out.println(Symbol);
    }
}

答案 3 :(得分:0)

使用Pattern

Pattern pattern = Pattern.compile("mini", Pattern.CASE_INSENSITIVE);
System.out.println(pattern.matcher(symbol).replaceAll(""));