使用java我该如何替换字符串中的字符只有当它发生单一?替换字符串中的字符时,它是单一的
例如:
取代单*
有#
输入字符串:
a*b**c*d***e
输出字符串:
a#b**c#d***e
inputString.replaceAll("*", "#");
替换所有*s
并返回a#b##c#d###e
使用java我该如何替换字符串中的字符只有当它发生单一?替换字符串中的字符时,它是单一的
例如:
取代单*
有#
输入字符串:
a*b**c*d***e
输出字符串:
a#b**c#d***e
inputString.replaceAll("*", "#");
替换所有*s
并返回a#b##c#d###e
您可以使用negative lookahead and lookbehind:
String s = "a*b**c*d***e";
String r = s.replaceAll("(?<!\\*)\\*(?!\\*)", "#"); // a#b**c#d***e
这写道:“一个*不是由* preceeded,而不是有*”(请注意一个事实,即*
必须在正则表达式进行转义,因为它是一个元字符)。
其工作完美。感谢这个表达。 – 2013-04-25 05:25:08
完美!谢谢! – user2318101 2013-04-25 06:31:08
尝试使用charAt(n)方法,将数字n(参数)设置为*单个数字,然后将字符串设置为“#”并查看是否有帮助。
This Answer is unserpful。您不能在Java中设置字符串中的字符。 Java字符串是不可变的。 – 2013-04-25 05:11:40
使用inputString.replaceAll(correctRegex,“#”) – 2013-04-25 05:04:13