去除字符串中的重复字符

A、若字符串为 "COOCON";样式

方法一:正则表达式

string str = "COOCON";

            str = Regex.Replace(str, "(?s)(.)(?=.*\\1)", "");

            Console.WriteLine(str);

            /*---------------------------------------------------------             (?s)(.)(?=.*\1)  表达式说明

            (?s)   开启单行模式 DOTALL  让. 号匹配任意字符             (.) 任意字符  并捕获在第一组             (?=.*\1)  这是断言, 表示后面内容将是 任意个字符加上第一组所捕获的内容

            这样子,如果这整个式子匹配到,表示,第一个捕获组内容在字符串中,至少出现两次,替换为 "" 空串.

            进行 全局替换后, 整个字符串所出现的字符将不重复。                         --------------------------------------------------------- */

方法二:

 string str = "COOCON";            

string str1 = "";            

ArrayList Alist = new ArrayList();            

foreach (char ch in str.ToCharArray())            

{                

if (!Alist.Contains(ch))                

{                    

Alist.Add(ch);                

}            

}

            foreach (object o in Alist )            

{                

str1 =str1+ o.ToString();            

}            

Console.WriteLine(str1);

B、

输入的数组格式:  strinput=”001,002,003,001,001,003,005”;

 要求输出的格式:  stroutput=”001,002,003,005”;

 具体的程序如下: 程序后台进行处理,因用到list ,需添加引用以下命名空间  using System.Collections.Generic;

程序正式代码:

string strinput="001,002,003,001,001,003,005";

string strouput="";

Array stringArray = strinput.Split(',');

List<string> listString = new List<string>();        

//遍历删除重复项 foreach (string eachString in stringArray)

{

if (!listString.Contains(eachString))   

listString.Add(eachString);

}

        //遍历输出 foreach (string string1 in listString)  

//测试值 { strouput=strouput+string1+','; }

strouput=strouput.Substring(0,strouput.Length-1);  

//strouput为所输出的字符串

 

以上几种方式摘自网络,集中放置,便于查询。

posted @ 2012-04-27 16:27  北冥子  阅读(1011)  评论(0编辑  收藏  举报