当前位置:编程学习 > C#/ASP.NET >>

怎么过滤重复的数字

比如:输入
“12352842153245”
处理后变为
“123584”
--------------------编程问答--------------------


string str = "12352842153245";

str = new string(str.ToCharArray().Distinct().ToArray());

--------------------编程问答-------------------- 楼上正解,,,,但是楼主需要引入 一个linq 的命名空间!!!!!www.aaspx.com  发布 --------------------编程问答-------------------- 比如定义一个lable1  lable2   textbox1   button1
在textbo1中输入 “12352842153245”
然后在lable2中实现“123584”
新手求代码 --------------------编程问答-------------------- 一楼不是写了 --------------------编程问答-------------------- 把楼上的代码写到button1按钮的单击事件中,在单击事件中 ,把最后的值给lable2.text就可以了 --------------------编程问答-------------------- 2楼给你答案了,事件总会写吧。。。。 --------------------编程问答-------------------- lable2.Text = new string(textbox1.Text.Distinct().ToArray()); --------------------编程问答--------------------
除了一楼的,自己写代码如下:

 public static string Distinct(string str)
        {
            if (str==null )
            {
                return null;
            }
            str = new string(str.Reverse().ToArray());
            StringBuilder sb = new StringBuilder();
            for (int i = 0; i < str.Length; i++)
            {
                char c = str[i];
                string newStr = str.Substring(i + 1);
                if (newStr.Contains(c))
                {
                    continue;
                }
                sb.Append(c);
            }
            return new string(sb.ToString().Reverse().ToArray());
        }

强烈建议 一楼的,我纯粹打发时间 才写的。 --------------------编程问答-------------------- 以前学C#用的资料,没有 linq,得补一补... --------------------编程问答--------------------
引用 1 楼 porschev 的回复:
C# code
?



12345

string str = "12352842153245";   str = new string(str.ToCharArray().Distinct().ToArray());

强!收藏了 --------------------编程问答--------------------
引用 1 楼 porschev 的回复:
C# code?123string str = "12352842153245"; str = new string(str.ToCharArray().Distinct().ToArray());
mark
--------------------编程问答--------------------
            if (textBox1.Text.Trim().Equals(""))
            {
                return;
            }
            char[] arr = this.textBox1.Text.ToCharArray();
            List<char> lst = new List<char>(arr.Length);
            Array.Sort(arr);
            for (int i = 0; i < arr.Length; i++)
            {
                lst.Add(arr[i]);
            }            
            for (int i = lst.Count - 1; i >= 0; i--)
            {
                if (i != 0)
                {
                    if (lst[i] == lst[i - 1])
                    {
                        lst.RemoveAt(i);
                    }
                }
            }
            string str = "";
            str = new string(lst.ToArray());
            this.label1.Text = str;

        }
不用linq一样可以解决 --------------------编程问答--------------------
引用 12 楼 UR_Not_Alone 的回复:
C# code
?
1234567891011121314151617181920212223242526

            if (textBox1.Text.Trim().Equals(""))             {                 return;             }             char[] arr = this.text……


Array.Sort(arr); 大哥你这样的注意顺序的了嘛????

188635777,会变成什么样的呢? 你还两次循环,一次足够的了,

 public static string Distinct(string str)
        {
            if (str == null)
            {
                return null;
            }
            List<char> list = new List<char>();
            for (int i = 0; i < str.Length; i++)
            {
                if (list.Contains(str[i]))
                {
                    continue;
                }
                list.Add(str[i]);
            }
            return new string(list.ToArray());
}


--------------------编程问答--------------------
引用 13 楼 QQ81867376 的回复:
引用 12 楼 UR_Not_Alone 的回复:C# code
?
1234567891011121314151617181920212223242526

            if (textBox1.Text.Trim().Equals(""))             {                 return;             }   ……

会变成这样,有什么错么,至于算法昨天太忙没时间多想,随便写了一个,能实现就行了 --------------------编程问答--------------------
引用 13 楼 QQ81867376 的回复:
引用 12 楼 UR_Not_Alone 的回复:C# code
?
1234567891011121314151617181920212223242526

            if (textBox1.Text.Trim().Equals(""))             {                 return;             }   ……

要是较真的话上面用linq的一次循环都不用,你还写什么 --------------------编程问答--------------------
引用 14 楼 UR_Not_Alone 的回复:
引用 13 楼 QQ81867376 的回复:
引用 12 楼 UR_Not_Alone 的回复:C# code
?
1234567891011121314151617181920212223242526

            if (textBox1.Text.Trim().Equals(""))             {                 return;     ……

有什么错你还看不来,说了呢还不乐意接受,真是.... --------------------编程问答--------------------
引用 16 楼 QQ81867376 的回复:
有什么错你还看不来,说了呢还不乐意接受,真是....

什么错啊,说说,我错了自然会承认 --------------------编程问答-------------------- 请你把题目再阅读一遍。  --------------------编程问答--------------------
引用 17 楼 UR_Not_Alone 的回复:
引用 16 楼 QQ81867376 的回复:
有什么错你还看不来,说了呢还不乐意接受,真是....
什么错啊,说说,我错了自然会承认

请你把题目再阅读一遍。 --------------------编程问答-------------------- 是没太注意要不要顺序,楼主也没说非得不排序吧 --------------------编程问答-------------------- 算了,不跟你争了,是我看题不仔细,干活去了 --------------------编程问答--------------------
引用 1 楼 porschev 的回复:
C# code?123string str = "12352842153245"; str = new string(str.ToCharArray().Distinct().ToArray());


+++++
楼上正解 --------------------编程问答--------------------
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,