2

使用java如何仅在单个字符出现时替换字符串中的字符?

例如:
将 single 替换*为 a#

输入字符串:

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

输出字符串:

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

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

4

2 回答 2

5

您可以使用负前瞻和后视

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

这读为:“一个 * 前面没有 * 并且后面没有 *”(注意*必须在正则表达式中转义,因为它是一个元字符)。

于 2013-04-25T04:54:21.613 回答
-1

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

于 2013-04-25T04:50:57.950 回答