思路是
先将字符串变成一串数组,
创建StringBuilder
然后用for冒泡排序,如果有重复的就覆盖掉原有的位置数值,然后继续下一轮,直至完成。
但发现用StringBuilder是无法把过程中的重复数值覆盖。
本人初学,请各位能否用基础点的知识解答?
可以用字典来存储已经加入的字符,用Linq是最简单的。示例代码如下
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();
}
}
先用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());
手打思路
所谓重复就是两个位置的内容相同,无论是当前位置的内容覆盖原有位置的内容,还是原有位置的内容覆盖当前位置的内容,都不会影响全局
希望你理顺思路再说