2015-07-21 87 views
1

我有一个字符串,例如1++++----2,我想用某个字符串替换++++----,比如说string。 在我使用java功能replaceAll,但它保持警告每次我用它的时间晃晃悠悠元字符replaceAll悬挂元字符

mystring.replaceAll("++++----", "string"); 
+1

如果您使用的是固定字符串替换,请使用'replace'方法 – nhahtdh

+0

查看上一个问题,您似乎错误地处理了这个问题。 – nhahtdh

+0

是的,它的工作原理。我认为只替换字符而不是字符串 –

回答

1

replaceAll的第一个参数需要regualr表达和+在regualr表达特殊的意义。逃脱+使其正常工作。

mystring.replaceAll("\\+\\+\\+\\+----", "string"); 
1

您可以使用下面的正则表达式:

mystring.replaceAll("\\++-+", "string") 

由于+是你需要逃离这里it.so在"\\++-+"第一部分\\+将字符+逐字匹配一个正则表达式字符,第二+将匹配1个或多个字符组合+,其余的是-+,它们将匹配1个或多个-

1

转义+,只有第一个或所有在这里没有关系。

String str = "1+++---2"; 
str = str.replaceAll("\\+\\+\\+---", ""); 
System.out.println(str); 

输出:

12 

或者使用replaceAll,因为它的意思是使用:

str = str.replaceAll("[+-]", ""); 
0

当您更换一个固定的字符串,你需要一个replace功能:

String mystring = "1++++----2"; 
System.out.println(mystring.replace("++++----", "string")); 

请参阅demo

否则,您需要一个带有replaceAll的正则表达式。

System.out.println(mystring.replaceAll("[+]+-+", "string")); 

注意,你不需要逃避+一个正则表达式字符类,它是Java里面方便。