让用户任意输入一串字符串,自动剔除重复数值只保留一个,最后输出。用StringBuilder。

思路是
先将字符串变成一串数组,
创建StringBuilder
然后用for冒泡排序,如果有重复的就覆盖掉原有的位置数值,然后继续下一轮,直至完成。
但发现用StringBuilder是无法把过程中的重复数值覆盖。
本人初学,请各位能否用基础点的知识解答?

可以用字典来存储已经加入的字符,用Linq是最简单的。示例代码如下

img

using System;
using System.Text;
using System.Linq;
using System.Collections.Generic;
public class Demo
{
    static void Main()
    {
        string s = Console.ReadLine();
        //Linq
        Console.WriteLine(String.Join("", s.ToCharArray().GroupBy(i => i).Select(i => i.FirstOrDefault())));

        Dictionary<char, bool> kv = new Dictionary<char, bool>();
        StringBuilder sb = new StringBuilder();
        foreach (var c in s)
            if (!kv.ContainsKey(c))
            {
                sb.Append(c);
                kv[c] = true;
            }

        Console.WriteLine(sb);
        Console.ReadKey();
    }
}

img


有帮助或启发麻烦点下【采纳该答案】,谢谢~~

先用string接数据
遍历string 把不重复的加到stringbuilder里
这里考的知识点是stringbuilder的频繁拼接字符串,这里自行百度。

string s = console.readline();
stringbuilder sb = new ();
foreach(var item in s)
{
if (!sb.contain(item)
{
sb.add(item);
}
}
console.writeline(sb.tostring());

手打思路

所谓重复就是两个位置的内容相同,无论是当前位置的内容覆盖原有位置的内容,还是原有位置的内容覆盖当前位置的内容,都不会影响全局
希望你理顺思路再说