如何使用replaceAll()替换算术(即0 + 1)

时间:2015-04-19 16:20:03

标签: java replaceall

所以我目前正在开发一个程序,部分程序我需要替换字符串的AND / OR评估。像1 + 0这样的东西意味着1或0.但是当我尝试使用replaceAll(“1 + 0”,“1”)时,它不会取代它。我目前的代码是

String test = "ab*0+1";

test = test.replaceAll("0+1", "1");

System.out.println(test);

然而,这个输出只给我

ab*0+1

我快速打印了test.indexOf(“0 + 1”),它给了我3.所以我知道程序可以看到它,它只是不会取代它。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

将第二行更改为:

test = test.replaceAll("0\\+1", "1");

+regex context中被解释,因此应该被转义。

答案 1 :(得分:0)

由于replaceAll期望字符串定义正则表达式,+在正则表达式中特殊,因此"0+1"表示“数字0一次或多次,后跟数字1“,匹配"01""001""00001"等。

要指定一个字面意思使用的字符串,请使用replace,而不是replaceAll