C#控制台基础 找到一个字符串中一个字符的所有索引值
2016-09-05 19:00
429 查看
慈心积善融学习,技术愿为有情学。善心速造多好事,前人栽树后乘凉。我今于此写经验,愿见文者得启发。
![](http://img.blog.csdn.net/20160905185133663?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
然后在网络上,有个算法,网址:http://zhidao.baidu.com/link?url=Zyw54OTIS8FH4tOUDG8VUSC2SiqkL7b1unCp_8wVHcBr6hGGRpw7YjYksg2JCfsZzX9wzHplWwLlMC-d22qcya
![](http://img.blog.csdn.net/20160905185319087?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
呐,看到了木,嘿嘿。算法的不同,处理的速度不同。
参考了网络上的方法,我自己更改了代码,
![](http://img.blog.csdn.net/20160905185907071?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
使用链表更加优秀!
果然呀,出来写代码,必须见多识广。
感恩曾经帮助过 心少朴 的人。
C#优秀,值得学习。Console,ASP.NET,Winform,WPF,设计模式等都可以关注一下,眼界要开阔。
Visual Studio IDE很好用,推荐!
注:此文是自学笔记所生,质量中等,故要三思而后行。新手到此,不可照搬,应先研究其理象数,待能变通之时,自然跳出深坑。
using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication7 { class Program { static void Main(string[] args) { var sw = new Stopwatch(); sw.Start(); string str = "1aqw5a7a9a"; //a的索引值是1,5,7,9 //建立一个存储a的索引值的数组 int[] index = new int[str.Length]; int j = 0; index[j++] = str.IndexOf('a'); for (int i = str.IndexOf('a')+1; i <= str.LastIndexOf('a'); i++) { i = str.IndexOf('a', i); index[j++] = i; } sw.Stop(); Console.WriteLine("该方法用时:"+sw.Elapsed); foreach (var item in index) { Console.WriteLine(item); } Console.ReadKey(); } } }
然后在网络上,有个算法,网址:http://zhidao.baidu.com/link?url=Zyw54OTIS8FH4tOUDG8VUSC2SiqkL7b1unCp_8wVHcBr6hGGRpw7YjYksg2JCfsZzX9wzHplWwLlMC-d22qcya
using System; using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication7 { class Program { static void Main(string[] args) { var sw = new Stopwatch(); sw.Start(); ArrayList lt = new System.Collections.ArrayList(); string str = "sfskjfskfakfjaga"; int index = 0; foreach (Char ch in str) { if (ch == 's') { lt.Add(index); } index++; } sw.Stop(); Console.WriteLine("该方法用时:"+sw.Elapsed); Console.ReadKey(); } } }
呐,看到了木,嘿嘿。算法的不同,处理的速度不同。
参考了网络上的方法,我自己更改了代码,
using System; using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication7 { class Program { static void Main(string[] args) { var sw = new Stopwatch(); sw.Start(); string str = "1aqw5a7a9a"; //a的索引值是1,5,7,9 var index = new ArrayList(); //建立一个存储a的索引值的链表 index.Add( str.IndexOf('a')); for (int i = str.IndexOf('a') + 1; i <= str.LastIndexOf('a'); i++) { i = str.IndexOf('a', i); index.Add(i); } sw.Stop(); Console.WriteLine("该方法用时:"+sw.Elapsed); foreach (var item in index) { Console.WriteLine(item); } Console.ReadKey(); } } }
使用链表更加优秀!
果然呀,出来写代码,必须见多识广。
感恩曾经帮助过 心少朴 的人。
C#优秀,值得学习。Console,ASP.NET,Winform,WPF,设计模式等都可以关注一下,眼界要开阔。
Visual Studio IDE很好用,推荐!
注:此文是自学笔记所生,质量中等,故要三思而后行。新手到此,不可照搬,应先研究其理象数,待能变通之时,自然跳出深坑。
相关文章推荐
- C#控制台基础 filestream将string字符串写入一个新建的txt文件中
- C#实现输入一个字符串输出该字符串字符的所有排列方式
- 给你一个字符串s和一个长度相同的单词列表。 找出s中所有子字符串的起始索引,这些字符串中的每个单词只是一个字符串,没有任何中介字符。
- C#控制台基础 path.changeextension一个路径字符串中的文件扩展名
- 给定一个字符串,找到包含该字符串所有字符的最短子串
- C#控制台基础 检测一个string数组是否包含指定的string字符串
- 基础算法(二) ———— 判断一个字符串中的所有字符是否都不
- C#控制台基础 assembly与fullname获取一个dll中所有的命名空间
- C#控制台基础 得到一个字符串中数字与字母的个数
- C#控制台基础 directory获取一个文件夹下所有文件及文件夹的全名
- C#控制台基础 directory获取一个文件夹下所有文件夹的名字(不包含文件)
- C#控制台基础 path.combine合并多个字符串,返回一个路径
- 输入一个字符串,输出该字符串中字符的所有组合 C#【总结】
- 给你一个字符串s和一个长度相同的单词列表。 找出s中所有子字符串的起始索引,这些字符串中的每个单词只是一个字符串,没有任何中介字符。
- C#控制台基础 directory获取一个文件夹下所有文件的名字(不包含文件夹)
- C#控制台基础 得到一个字符串中每个字母出现的次数
- C# 3.0 Cookbook:一、字符与字符串处理(3):在一个字符串内寻找另一个字符串出现的所有位置
- C#控制台基础 除去一个字符串中的tab与空格
- 在一个字符串中找到第一个只出现一次的字符
- 【练习】在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b