如何用Java替换字符串中的点(。)

时间:2011-09-11 19:17:06

标签: java str-replace

我有一个名为persons.name

的字符串

我想用.替换DOT /*/,即我的输出将为persons/*/name

我试过这段代码:

String a="\\*\\";
str=xpath.replaceAll("\\.", a);

我收到了StringIndexOutOfBoundsException。

如何更换点?

4 个答案:

答案 0 :(得分:127)

在点之前需要两个反斜杠,一个用于逃避斜线以便它通过,另一个用于逃避点,因此它变为文字。正斜杠和星号按字面处理。

str=xpath.replaceAll("\\.", "/*/");          //replaces a literal . with /*/

http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#replaceAll(java.lang.String,%20java.lang.String)

答案 1 :(得分:8)

使用Apache Commons Lang

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”,“。”);