Java replaceAll和regex

时间:2012-12-04 08:15:25

标签: java android replaceall

我正在使用Android,我想用另一个String替换String中某个{character}的所有出现次数。 例如,如果我们谈论的角色是'a'而且替换是“12”,那么:

Input : There are {a} months in a year.
Output : There are 12 months in a year.

我不知道如何处理replaceAll方法和regexes ...

谢谢!

4 个答案:

答案 0 :(得分:4)

为此,您可以使用String.format

int aInt = 12;
String.format("There are {%d} months in a year",  aInt );

答案 1 :(得分:1)

你可以使用string.replace("{a}", "12")它将所有出现的{a}替换为字符串中的12并且不会采用正则表达式。如果您需要搜索模式,请使用replaceAll

答案 2 :(得分:1)

由于你不需要在这里使用正则表达式,因此vishal_aim的答案更适合这种情况。

replaceAll的第一次尝试是

String str = "There are {a} months in a year.";
str.replaceAll("{a}", "12");  

但它不起作用,因为replaceAll采用正则表达式而{}是正则表达式中的特殊字符,因此您需要将其转义:

str.replaceAll("\\{a\\}", "12");

答案 3 :(得分:0)

String str = "There are {a} months in a year.";

str.replaceAll(Pattern.quote("{a}"), "12");

修改

java.util.regex.Pattern.quote(String)方法返回指定String的文字模式String。