您可以使用不區分大小寫的正則表達式,例如...
String sentance = "Dang the dang and DANG and I don't mind a dANg";
sentance = sentance.replaceAll("(?i)dang", "#!");
System.out.println(sentance);
這將輸出類似...
#! the #! and #! and I don't mind a #!
更新基於意見
沒有使用replaceAll
的能力,你將不得不拆分String
段,一個辦法是遍歷在String
,修剪掉了 「宕」 S和建設,從一個新的String
,例如...
String sentance = "Dang the dang and DANG and I don't mind a dANg and some more";
StringBuilder sb = new StringBuilder(sentance.length());
while (sentance.toLowerCase().contains("dang")) {
int index = sentance.toLowerCase().indexOf("dang");
String start = sentance.substring(0, index);
int endIndex = index + "dang".length();
sb.append(start);
sb.append("#!");
sentance = sentance.substring(endIndex);
}
sb.append(sentance);
System.out.println(sb.toString());
更新
你可以使用不區分大小寫的正則表達式和String#split
這將打破String
繞成表達一個數組,那麼您需要能夠重建這些地區的String
...
String sentance = "Bang Dang the dang and DANG and I don't mind a dANg and some more";
String[] split = sentance.split("(?i)dang");
StringBuilder sb = new StringBuilder(sentance.length());
for (int index = 0; index < split.length - 1; index++) {
String part = split[index];
System.out.println("[" + part + "] " + part.trim().isEmpty());
if (!part.trim().isEmpty()) {
sb.append(part).append("#!");
} else {
sb.append("#!");
}
}
// Put the last value at the end, so we don't end up with #! at the end of the String
sb.append(split[split.length - 1]);
System.out.println(sb.toString());
我沒有做任何範圍檢查(檢查是否有足夠的零件返回),所以你將需要做你自己的測試,但那裏的想法...
我沒有看到你輸出任何東西。這發生在哪裏? – 2014-10-17 03:14:27
另外,你爲什麼期望''dang''替換''DANG Apple''中的任何東西? – 2014-10-17 03:16:08