我有一个名为persons.name
我想用.
替换DOT /*/
,即我的输出将为persons/*/name
我试过这段代码:
String a="\\*\\";
str=xpath.replaceAll("\\.", a);
我收到了StringIndexOutOfBoundsException。
如何更换点?
答案 0 :(得分:127)
在点之前需要两个反斜杠,一个用于逃避斜线以便它通过,另一个用于逃避点,因此它变为文字。正斜杠和星号按字面处理。
str=xpath.replaceAll("\\.", "/*/"); //replaces a literal . with /*/
答案 1 :(得分:8)
String a= "\\*\\";
str = StringUtils.replace(xpath, ".", a);
或使用独立的JDK:
String a = "\\*\\"; // or: String a = "/*/";
String replacement = Matcher.quoteReplacement(a);
String searchString = Pattern.quote(".");
String str = xpath.replaceAll(searchString, replacement);
答案 2 :(得分:4)
如果要替换一个简单的字符串并且不需要正则表达式的功能,则可以只使用replace
,而不是replaceAll
。
replace
替换每个匹配的子字符串,但不将其参数解释为正则表达式。
str = xpath.replace(".", "/*/");
答案 3 :(得分:0)
返回句子.replaceAll(“ \ s”,“。”);