Como substituir ponto (.) Em uma string em Java


87

Eu tenho um String chamado persons.name

Quero substituir o DOT .por, /*/ ou seja, minha saída serápersons/*/name

Eu tentei este código:

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

Estou recebendo StringIndexOutOfBoundsException.

Como faço para substituir o ponto?

Respostas:



9

Use Apache Commons Lang :

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

ou com JDK autônomo:

String a = "\\*\\"; // or: String a = "/*/";
String replacement = Matcher.quoteReplacement(a);
String searchString = Pattern.quote(".");
String str = xpath.replaceAll(searchString, replacement);

9

Se você deseja substituir uma string simples e não precisa das habilidades das expressões regulares, pode simplesmente usar replace, não replaceAll.

replace substitui cada substring correspondente, mas não interpreta seu argumento como uma expressão regular.

str = xpath.replace(".", "/*/");

1
Esta deve ser a resposta aceita, IMO.
Aaron Lehmann

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.