将值更改为字符串时出现问题。 我有三个值,例如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'也实现了。
答案 0 :(得分:1)
最简单的方法是先替换长令牌。
看起来您的替换字符串也包含“a”。因此,您可能需要使用临时字符串(原始文本中不太可能出现的字符串)替换它们,然后在处理完所有字符串之后转换为目标字符串。
智能地仅替换“a”而不替换“aa”的唯一方法是解析文本中的每个字符以确定每个标记的长度。这并不是那么难,但比调用Replace()
要多得多。
答案 1 :(得分:1)
只需从最长的子串替换为最短的子串:
builders.Replace("aaa", "bba");
builders.Replace("aa", "bab");
builders.Replace("a", "ab");