簡體   English   中英

ReplaceAll和“不替換

[英]ReplaceAll and " doesn't replace

任何人都可以指出我的第一個如果有效,第二個沒有? 我很困惑為什么第二個if子句不起作用。 我想得到一個提示,謝謝。

String msg = o.getTweet();
        if (msg.indexOf("&") > 0) {
            msg = msg.replaceAll("&", "&");// vervangt & door &
        }
        if (msg.indexOf(""") > 0) {
            msg = msg.replaceAll(""", "aa"); //vervangt " door "
        }

因為ZERO是一個非常有效的索引。 試試這個,

    String msg = o.getTweet();
    if (msg.indexOf("&") != -1) {
        msg = msg.replaceAll("&", "&");// vervangt & door &
    }
    if (msg.indexOf(""") != -1) {
        msg = msg.replaceAll(""", "aa"); //vervangt " door "
    }

說明:

String.indexOf(String str)的文檔解釋說, “如果字符串參數作為此對象中的子字符串出現,則返回第一個此類子字符串的第一個字符的索引;如果它不作為子字符串出現,返回-1。“ - [鏈接到文檔]

這可以像下面這樣簡單地完成,正如OpenSauce這里指出的那樣。

msg = msg.replace("&", "&").replace(""", "\"");

有用的鏈接:

您不需要檢查子字符串是否存在,如果找不到子字符串,則replacereplaceAll方法都是no-ops。 由於你不是在尋找正則表達式,你也可以使用replace而不是replaceAll - 它會更有效率,如果你還想檢查碰巧包含正則表達式特殊字符的其他字符串,也不會讓你感到驚訝。

msg = msg.replace("&", "&").replace(""", "\"");

請注意, replace確實會替換所有匹配,就像您想要的那樣。 replacereplaceAll之間的區別在於arg是否被解釋為正則表達式。

暫無
暫無

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

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