c# 去除字符串中重复的字符

liufeizhiminRoy 2009-10-22 08:17:53

用C#去除字符串中重复的字符。


如COOCON ----> CON 去除重复的字符,保留出现的第一次的字符。 ABCDDC --->ABCD 明白否?
...全文
978 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
gene_feng 2010-10-25
  • 打赏
  • 举报
回复
学习了,谢谢!
guiguikafei 2010-04-07
  • 打赏
  • 举报
回复
3楼的正则也蛮好用的
ws_hgo 2009-10-22
  • 打赏
  • 举报
回复
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class NET_Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{

}
//ABCDDC
protected void Button1_Click(object sender, EventArgs e)
{
string str = TextBox1.Text.Trim();
string Result = string.Empty;
ArrayList Myarray = new ArrayList();
foreach (char ss in str.ToCharArray())
{
if (!Myarray.Contains(ss))
{
Myarray.Add(ss);
}
}

for (int i = 0; i < Myarray.Count; i++)
{
Result += Myarray[i].ToString();
}
Response.Write(Result);
}
}
liufeizhiminRoy 2009-10-22
  • 打赏
  • 举报
回复
感谢你风的足迹,我已经弄好了。谢谢你,万分感谢,小弟学习了。
风之影子 2009-10-22
  • 打赏
  • 举报
回复
用4楼的或是7楼的都行.
风之影子 2009-10-22
  • 打赏
  • 举报
回复
晕:那用四楼的,直接调用方法就行.

1楼和7楼的都行.
不过1楼和2楼的用了集合,效率低点.

四楼的也可以.
你再试试.
liufeizhiminRoy 2009-10-22
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 libinguest 的回复:]
引用 9 楼 liufeizhiminroy 的回复:
超出索引范围


用那个的代码出现这错误呢?

上面的代码应该都不会报这个错.
[/Quote]

就是三楼的,就会出错,我在VS2008上面
风之影子 2009-10-22
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 liufeizhiminroy 的回复:]
超出索引范围
[/Quote]

用那个的代码出现这错误呢?

上面的代码应该都不会报这个错.
liufeizhiminRoy 2009-10-22
  • 打赏
  • 举报
回复


超出索引范围
风之影子 2009-10-22
  • 打赏
  • 举报
回复
吴兄:

你大概没看到三楼的代码吧!
wuyq11 2009-10-22
  • 打赏
  • 举报
回复
string[] arr= str.Split(',');
SortedList list = new SortedList();
for (int i = 0; i < arr.Length; i++)
{
if (!list.ContainsKey(arr[i]))
list.Add(arr[i], arr[i]);
}
for (int i = 0; i < list.Count; i++)
{
Console.WriteLine(list.GetByIndex(i));
}
风之影子 2009-10-22
  • 打赏
  • 举报
回复
建议用三楼的代码
csrwgs 2009-10-22
  • 打赏
  • 举报
回复
我是来接分的。
风之影子 2009-10-22
  • 打赏
  • 举报
回复
方法改为下面的,性能好一点:

        #region ArrayList的示例应用
/// 方法名:DelStringSame
/// 功能: 删除字符串中重复的元素
/// </summary>
/// <param name="TempArray">所要删除的字符串</param>
/// <returns>返回字符串</returns>
public string DelStringSame(string TempStr)
{
char[] TempArray = (char[])TempStr.ToCharArray();
string newStr = "";
for (int i = 0; i < TempArray.Length; i++)
{
if (!newStr.Contains(TempArray[i].ToString()))
{
newStr += TempArray[i].ToString();
}
}
return newStr;
}
#endregion
應燁軍 2009-10-22
  • 打赏
  • 举报
回复
   string str = "COOCON";

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

Console.WriteLine(str);

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

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

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

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

--------------------------------------------------------- */
风之影子 2009-10-22
  • 打赏
  • 举报
回复
        #region ArrayList的示例应用
/// 方法名:DelStringSame
/// 功能: 删除字符串中重复的元素
/// </summary>
/// <param name="TempArray">所要删除的字符串</param>
/// <returns>返回字符串</returns>
public string DelStringSame(string TempStr)
{
char[] TempArray = (char[])TempStr.ToCharArray();
ArrayList nStr = new ArrayList();
for (int i = 0; i < TempArray.Length; i++)
{
if (!nStr.Contains(TempArray[i]))
{
nStr.Add(TempArray[i]);
}
}
string newStr = "";
foreach (object a in nStr)
{
newStr = newStr + a.ToString();

}
//string newStr = (string)nStr.ToArray(typeof(string));
return newStr;
}
#endregion


方法调用:
            string abc = "COOCON";
string newStr = DelStringSame(abc);
MessageBox.Show(newStr);
SQL77 2009-10-22
  • 打赏
  • 举报
回复
            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);

110,572

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧