Java:省略字符串中的Word

时间:2013-03-06 18:57:43

标签: java

我有一个字符串,我需要从中省略一个特定的单词。

如下所示,字符串可能包含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);

      }

}

4 个答案:

答案 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是否包含它会更好。如果它没有找到要替换的东西,那么它就不会取代任何东西。

希望它会有用!