搜索确切的短语并进行更改

时间:2018-03-07 21:33:49

标签: c# .net

将值更改为字符串时出现问题。 我有三个值,例如a,aa,aaa

StringBuilder builders = new StringBuilder(string);
builders.Replace("a", "ab");
builders.Replace("aa", "bab");
builders.Replace("aaa", "bba");
string new_string = builders.ToString();

如何确切地找到' aaa'的价值。因为对于这个值,' a'和' aa'也实现了。

2 个答案:

答案 0 :(得分:1)

最简单的方法是先替换长令牌。

看起来您的替换字符串也包含“a”。因此,您可能需要使用临时字符串(原始文本中不太可能出现的字符串)替换它们,然后在处理完所有字符串之后转换为目标字符串。

智能地仅替换“a”而不替换“aa”的唯一方法是解析文本中的每个字符以确定每个标记的长度。这并不是那么难,但比调用Replace()要多得多。

答案 1 :(得分:1)

只需从最长的子串替换为最短的子串:

builders.Replace("aaa", "bba");
builders.Replace("aa", "bab");
builders.Replace("a", "ab");
相关问题