我有一个字符串为“ 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);
}
}
答案 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(""));