我有一个字符串,我需要从中省略一个特定的单词。
如下所示,字符串可能包含Word" Baci"或者" BACI"在其中
我已经编写了一个下面显示的示例程序,但是我想知道是否有更好的方法可以做到这一点?
public class Test {
public static void main(String args[]) {
String str = "Mar 14 Baci WIC";
if(str!=null&&!str.isEmpty())
{
if(str.contains("Baci") || str.contains("BACI"))
{
str = str.replaceAll("(?i) Baci", "");
}
}
System.out.println(str);
}
}
答案 0 :(得分:1)
我认为更好的方法是不另外检查“Baci”的存在,即没有以下if
检查
if(str.contains("Baci") || str.contains("BACI"))
答案 1 :(得分:1)
你可以使用\ b regex(匹配“单词边界”)来改善它:
str = str.replaceAll("(?i) Baci\\b", "");
那样,你的代码不会用“myl is ......”取代“我的罗勒是......”
答案 2 :(得分:1)
您的第二个if
条件是不必要的,因为replaceAll()
会在没有错误的情况下替换String
的零次或多次。
答案 3 :(得分:0)
你可以.toUpperCase你的String然后只询问包含(" BACI")。在if块内,然后只用Baci和BACI调用replace两次。
再想一想,我认为只需调用replace两次而不询问你的String是否包含它会更好。如果它没有找到要替换的东西,那么它就不会取代任何东西。
希望它会有用!