問:字符串如何去除重複的字符?
-
HashSet 無序不重複,最佳選擇
public static string RemoveRepeatChar(string str)
{
HashSet<char> set = new HashSet<char>();
char[] chars = str.ToCharArray();
for (int i = 0; i < chars.Length; i++)
{
set.Add(chars[i]);
}
StringBuilder sb = new StringBuilder();
foreach (var s in set)
{
sb.Append(s);
}
return sb.ToString();
}
- Linq自帶去重的方法
public static string FilteRepeatChar(string str)
{
char[] char_arr = str.ToArray().Distinct().ToArray();
return string.Join("", char_arr);
}
- 用List的Contains方法遍歷去重
public static string NotRepeat(string str)
{
ArrayList alist = new ArrayList();
char[] c_arr = str.ToArray();
for (int i = 0; i < c_arr.Length; i++)
{
if (!alist.Contains(c_arr[i]))
alist.Add(c_arr[i]);
}
StringBuilder sb = new StringBuilder();
for (int j = 0; j < alist.Count; j++)
{
sb.Append(alist[j]);
}
return sb.ToString();
}