VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1051|回复: 7

字符截取的问题(有点难度)

[复制链接]

1

主题

1

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-3-12 22:30:01 | 显示全部楼层 |阅读模式
如何将这样的字符串"aa,bb,cc,dd,aa,bb,cc,dd"重复的去掉变成"aa,bb,cc,dd"
挺有难度的,希望会的高手帮个忙,谢谢
回复

使用道具 举报

0

主题

64

帖子

45.00

积分

新手上路

Rank: 1

积分
45.00
发表于 2020-6-7 19:15:02 | 显示全部楼层
在"aa,bb,cc,dd,aa,bb,cc,dd"中先去第一个","前的字符串,循环找下一个,找到后将"aa,"或"aa"替换为"",将得到新字符串,重复上述,找下一个
回复

使用道具 举报

0

主题

32

帖子

20.00

积分

新手上路

Rank: 1

积分
20.00
发表于 2020-6-8 11:15:01 | 显示全部楼层
protected void Page_Load( object sender, EventArgs e )
  {
    string a = "aa,bb,cc,dd,aa,bb,cc,dd";
    string[] arr = a.Split(',');
    string[] b = RemoveDups(arr, true);
    for (int i = 0 ; i < b.Length ; i++)
    {
      Response.Write("<li>" + b[i]);
    }
  }
  public string[] RemoveDups( string[] items, bool sort )
  {
    ArrayList noDups = new ArrayList();
    for (int i = 0 ; i < items.Length ; i++)
    {
      if (!noDups.Contains(items[i].Trim()))
      {
        noDups.Add(items[i].Trim());
      }
    }
    if (sort) noDups.Sort();
    string[] uniqueItems = new String[noDups.Count];
    noDups.CopyTo(uniqueItems);
    return uniqueItems;
  }
回复

使用道具 举报

0

主题

322

帖子

115.00

积分

新手上路

Rank: 1

积分
115.00
发表于 2020-6-8 14:30:02 | 显示全部楼层
string str = "aa,bb,cc,dd,aa,bb,cc,dd";
                         
                        ArrayList al = new ArrayList(str.Split(','));
                        al.Sort();
                         
                        for(int i=1;i<al.Count;i++)
                        {
                                if(al[i].ToString() == al[i-1].ToString())
                                {
                                        al.RemoveAt(i);
                                        i--;
                                }
                        }


                        str = "";

                        for(int i=0;i<al.Count;i++)
                        {
                                str += al[i].ToString()+",";
                        }
       

                        str =str.Substring(0,str.Length-1);
                        Response.Write(str);
回复

使用道具 举报

0

主题

24

帖子

20.00

积分

新手上路

Rank: 1

积分
20.00
发表于 2020-6-8 22:30:01 | 显示全部楼层
试试:

using System.Text;
StringBuilder sb=new StringBuilder();
string str="aa,bb,cc,dd,aa,bb,cc,dd";
string[] tempstr=str.Split(',');
for(int i=0;i<tempstr.Length;i++)
{
  string tmp=tempstr[i];
  int flag=0;
  for(int j=0;j<tempstr.Length;j++)
  {
     if(tmp==tempstr[j])
     {
        flag=1;
        break;
     }
  }
  if(flag==0)
  {
     sb.Append(tmp);
     sb.Append(",");
   }
}
return sb.ToString();
回复

使用道具 举报

0

主题

20

帖子

15.00

积分

新手上路

Rank: 1

积分
15.00
发表于 2020-6-10 00:15:01 | 显示全部楼层
string a="aa,bb,cc,dd,aa,bb,cc,dd";
string[] strs=a.Split(',');
Hashtable ht=new Hashtable();
foreach(string str in strs)
        if(!ht.Contains(str))
                ht.Add(str,"");
string strRen="";
IDictionaryEnumerator ide=ht.GetEnumerator();
ide.Reset();
while(ide.MoveNext())
{
        strRen+=(string)ide.Key+",";
}//给你个好玩的写法
回复

使用道具 举报

0

主题

20

帖子

15.00

积分

新手上路

Rank: 1

积分
15.00
发表于 2020-6-10 10:45:01 | 显示全部楼层
string a="aa,bb,cc,dd,aa,bb,cc,dd";
string[] strs=a.Split(',');
Hashtable ht=new Hashtable();
string strRen="";
foreach(string str in strs)
        if(!ht.Contains(str))
        {
                ht.Add(str,"");
                strRen+=str+",";
        }
//原来这么写就成
回复

使用道具 举报

0

主题

2

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
发表于 2020-6-13 09:45:01 | 显示全部楼层
用split函数产生数组... 厉害的写得好详细..

不一定要一个个比较的.. 在集合框架中. 有的是不允许有重复的值.. Hashtable 就是个好例子.

不记得HashMap  HashSet  中哪个也是不允许有重复的..
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表