c# - 用字符串中的其他内容替换重复的字符

标签 c#

我需要帮助来找出一个逻辑:

所以,假设我有一个字符串,每当该 string 中有一个 Char 重复时,我需要将其替换为 (Char + 数字序列)。

例如:

原始字符串:"abcdefgabfabc"

预期输出:"abcdefga2b2f2a3b3c2"

'a' occurs 3 times, so the first 'a' remains as 'a', but the second 'a' becomes 'a2', and the third 'a' becomes 'a3' and the same goes to other chars like b, b2, b3...

最佳答案

  1. 创建一个包含字母和每个字母出现次数的字典
  2. 创建一个 StringBuilder 来存储输出
  3. 逐个字母地遍历输入字符串
  4. 将字母输出到新字符串
  5. 如果一个字母不在字典中,则将其添加为键,以'1'为值
  6. 如果一个字母已经在字典中,则将该值加1并将该值追加到输出字符串中

关于c# - 用字符串中的其他内容替换重复的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21837984/

相关文章:

C# ASP X-CONTENT-TYPE-OPTIONS - Internet Explorer 不显示 PNG 文件

c# - SignalR 和 ASP.NET Identity 的 UserManager 类生命周期

c# - MonoTouch NSClassFromString

c# - 如果有其他对象指向它,Dispose 真的可以释放内存吗?

c# - .NET 应用程序启动速度非常慢 - cryptnet.dll 试图访问百慕大的 IP

c# - 抽象类中没有公共(public)成员

c# - 使用 LINQ 选择

c# - 我对这段代码的理解是否正确?

c# - 如何将 IHttpContextAccessor 注入(inject) Autofac TenantIdentificationStrategy

c# - 将 IEnumerable 分组为一个字符串