List.Exists 方法和几种字符串去重方法
来源:互联网 发布:淘宝差评改好评时间 编辑:程序博客网 时间:2024/05/17 10:40
今天群里提了一个小问题:给出一个字符串"abcabc12345612ab";能不能用某种方式去除重复 字符,输出 "abc123456"的形式.
我的想法是首先构造一个List,然后将打印后的字符传到List里面,如果List.Exists这个字符,就不输出,否则,添加到List里面,然后输出此字符.结果就差一秒啊,发现List.Exists 方法和我想的不一样,中间传的不是string,而是一个委托,晕(要用Contains).好好看看msdn,传送门在此,发现这个参数是一个委托,传入的是一个string参数,返回的是一个bool值.和Regex.Replace方法很像(指用法).看来委托确实很强大.虽然斗法失败,不过学习了一个新的知识,还好吧,哈哈.
其实我觉得值得推荐的是几种方法:
1.建立零时变量,存储待输出字符.(如我上面描述的那样)
static void Main(){ string strTest = "abcabc12345612ab"; List<char> l = new List<char>(); foreach (char ch in strTest.ToCharArray()) { if (!l.Contains(ch)) { l.Add(ch); } } System.Console.WriteLine(l.ToArray()); System.Console.ReadKey();}
形如创建string,char[]等等都是这种方式.
这个应该是 【普通青年】
2.使用LINQ,或者说泛型的方法
static void Main(){ string strTest = "abcabc12345612ab"; System.Console.WriteLine(strTest.ToCharArray().Distinct().ToArray()); System.Console.ReadKey();}
这个我感觉是比较合理和简洁的,不过需要对 .Net 类库有很熟悉的认识.
【文艺青年】
3.使用正则表达式
static void Main(){ string strTest = "abcabc12345612ab"; Regex reg = new Regex(@"(?'all'(?'start'.).*?)\k'start'"); while (strTest != (strTest = reg.Replace(strTest, "${all}"))) { } System.Console.WriteLine(strTest); //abc123456 System.Console.ReadKey();}
这个有点BT,虽然我个人很喜欢正则,但是这个实在有点狠.
分析了一下,大致的思路是:匹配一段字符串,这段字符的特点是:开始的字符和结尾的字符是一样的,比如"aba","123461".然后将结尾的字符去除,这样就减少了一个重复的字符,循环如此,直到字符串中没有重复的字符为止.向想出这种方法的q107770540( Tim [兔子党执行督察])致敬,佩服.
【变态青年】END:条条大路通罗马,你是用什么方法来实现的呢?
- List.Exists 方法和几种字符串去重方法
- List去重的几种方法
- list去重的四种方法
- 去重简单几种方法
- 数组去重的几种方法
- 数组去重的几种方法
- 数组去重的几种方法
- 数组去重的几种方法
- List去重简单方法
- java list map 去重和排序方法
- list字符串去重的三种方式 list去重 字符串去重
- list去重的两种方法大比拼
- C# List去重的三种方法
- Java List去重的两种方法
- C# List去重的三种方法
- python 列表去重(数组)的几种方法
- javascript 数组去重的几种方法
- linux sh 去重的几种方法实例
- ufw配置
- 《C语言名题精选百则----6》
- Apache Camel框架入门示例
- 【C++ Desgin Pattern-Creational】Abstract Factory (抽象工厂)
- 代码 优化 指南 实践
- List.Exists 方法和几种字符串去重方法
- c/c++预处理学习总结
- 睡觉前对皮肤做的几件事
- 利用qemu进行内核源码级调试
- C# datagirdview 取消默认选择第一行
- Sersync 是一款基于inotify + rsync 的大量文件的多服务器自动同步程序
- eclipse中文乱码问题
- C++ 读写文件 实例
- javascript 事件检测和三目表达式