2013-04-25 60 views
2

使用java我该如何替换字符串中的字符只有当它发生单一?替换字符串中的字符时,它是单一的

例如:
取代单*#

输入字符串:

a*b**c*d***e 

输出字符串:

a#b**c#d***e 

inputString.replaceAll("*", "#");替换所有*s并返回a#b##c#d###e

+0

使用inputString.replaceAll(correctRegex,“#”) – 2013-04-25 05:04:13

回答

5

您可以使用negative lookahead and lookbehind

String s = "a*b**c*d***e"; 
String r = s.replaceAll("(?<!\\*)\\*(?!\\*)", "#"); // a#b**c#d***e 

这写道:“一个*不是由* preceeded,而不是有*”(请注意一个事实,即*必须在正则表达式进行转义,因为它是一个元字符)。

+0

其工作完美。感谢这个表达。 – 2013-04-25 05:25:08

+0

完美!谢谢! – user2318101 2013-04-25 06:31:08

-1

尝试使用charAt(n)方法,将数字n(参数)设置为*单个数字,然后将字符串设置为“#”并查看是否有帮助。

+1

This Answer is unserpful。您不能在Java中设置字符串中的字符。 Java字符串是不可变的。 – 2013-04-25 05:11:40