[英]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.