如何replaceJava中的string中的点(。)

我有一个名为persons.name的string

我想replaceDOT ./*/即我的输出将是persons/*/name

我试过这个代码:

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

我得到StringIndexOutOfBoundsException。

我如何replace点?

在点之前需要两个反斜杠,一个用来逃避斜线,另一个用来逃避点,使之成为文字。 正斜线和星号被视为文字。

 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);

使用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);