任何人都可以指出我的第一个如果有效,第二个没有?我很困惑为什么第二个if子句不起作用.我想得到一个提示,谢谢.
String msg = o.getTweet();
if (msg.indexOf("&") > 0) {
msg = msg.replaceAll("&", "&");// vervangt & door &
}
if (msg.indexOf(""") > 0) {
msg = msg.replaceAll(""", "aa"); //vervangt " door "
}
Run Code Online (Sandbox Code Playgroud)
Ade*_*ari 16
因为ZERO是一个非常有效的索引.试试这个,
String msg = o.getTweet();
if (msg.indexOf("&") != -1) {
msg = msg.replaceAll("&", "&");// vervangt & door &
}
if (msg.indexOf(""") != -1) {
msg = msg.replaceAll(""", "aa"); //vervangt " door "
}
Run Code Online (Sandbox Code Playgroud)
说明:
该文档String.indexOf(String str)解释说,"如果字符串参数作为此对象中的子字符串出现,则返回第一个此类子字符串的第一个字符的索引;如果它不作为子字符串出现,则返回-1." - [链接到文档]
这可以像下面这样简单地完成,正如OpenSauce在这里指出的那样.
msg = msg.replace("&", "&").replace(""", "\"");
Run Code Online (Sandbox Code Playgroud)
有用的链接:
Ope*_*uce 11
您不需要检查子字符串是否存在,如果找不到子字符串,则replace和replaceAll方法都是no-ops.既然你不找正则表达式,你也可以使用replace,而不是replaceAll-这将在一定程度上更有效,如果你还需要检查它会包含正则表达式的特殊字符的其他琴弦不会令你大吃一惊.
msg = msg.replace("&", "&").replace(""", "\"");
Run Code Online (Sandbox Code Playgroud)
请注意replace确实替换所有匹配,就像你想要的那样.replace和之间的区别在于replaceAllarg是否被解释为正则表达式.