簡體   English   中英

Java:替換字符串詞

[英]Java : Replacing String Words

我有一個字符串作為“ ISTERC Mini BAT

問題在於,單詞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);

    }

}

使用String#replaceAll並通過正則表達式(?i)word (?i)啟用不區分大小寫

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

試試看

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

(?i)將使replaceAll方法忽略字符區分大小寫。

它應該適用於MINI,MiNi和其他任何可能性。

編輯#1: System.out.println(Symbol.contains("(?i) Mini", "")); 將導致布爾響應為false因為它不使用正則表達式。 它將(?i) Mini視為String本身。

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

使用模式

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM