字符串去重

問:字符串如何去除重複的字符?

  • 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();
        }

 

發佈了35 篇原創文章 · 獲贊 14 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章