如何从字符串中提取唯一字符
本文关键字:提取 唯一 字符 字符串 | 更新日期: 2023-09-27 18:06:43
我有一个字符串"aabbcccddeefddg",我想从中提取唯一的字符。结果集应该是"abcdefg"。
注意:我不想使用String。c#中的独特功能
不知道为什么不想使用Distinct
,但这里有一个使用HashSet<char>
的解决方案:
HashSet<char> chars = new HashSet<char>();
string s = "aabbcccddeefddg";
foreach(char c in s)
{
chars.Add(c);
}
foreach(char c in chars)
{
Console.WriteLine(c);
}
这个怎么样:
static string extract(string original)
{
List<char> characters = new List<char>();
string unique = string.Empty;
foreach (char letter in original.ToCharArray())
{
if (!characters.Contains(letter))
{
characters.Add(letter);
}
}
foreach (char letter in characters)
{
unique += letter;
}
return unique;
}
查看下面的伪代码
initialize array index[256] to 0
for (i=0; i<length_of_string; i++)
{
index[string[i]]++;
}
for (i=0; i<256; i++)
{
if (index[i] > 0)
print ascii of **i**
}
下面的循环将按照原字符串中出现的顺序打印字符。
for (i=0; i<256; i++)
{
if (index[i] > 0)
{
index[i] = 0
print ascii of **i**
}
}
或者将字符串拆分为字符数组。然后循环遍历。取字符串(带substring)的剩余部分(当前字母之后的所有内容)并使用string。替换以删除同一字母的其他引用。然后将结果与第一部分连接起来。对每个字母都这样做。
问题也解决了。
这有帮助吗?
string s = "AAABBBBBCCCCFFFFGGGGGDDDDJJJJJJ";
var newstr = String.Join("", s.Distinct());