c#里如何在一个字符串内查找所有子字符串所在的位置?并保存到一个数组内?

c#里如何在一个字符串内查找所有子字符串所在的位置?并保存到一个数组内?比如字符串A=“ssddxx等级:12kkkcxc12kkk等级:31sxsd1xd等级:52kkkcsdfsdf2k等级:44”子字符串="等级"字符串长度不是固定的,

代码其实很简单,用一个while循环既可以:IList<int> list = new List<int>(); // ArrayList list = new ArrayList();
string a = "ssddxx等级:12kkkcxc12kkk等级:31sxsd1xd等级:52kkkcsdfsdf2k等级:44";
string b = "等级";

int pos = a.IndexOf(b);
while(pos > -1)
{
list.Add(pos);
pos += b.Length;
if(pos >= a.Length) break;
pos = a.IndexOf(b, pos);
}
/*
foreach(int i in list)
{
//i 为每个匹配b字符串的开始位置(从0开始)
}
*/
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-05-04
List<int> subIndex = new List<int>();
string A = "ssddxx等级:12kkkcxc12kkk等级:31sxsd1xd等级:52kkkcsdfsdf2k等级:44";
int ii = A.IndexOf("等级");
while (ii >= 0 && ii < A.Length)
{
subIndex.Add(ii);
ii = A.IndexOf("等级", ii + 1);
}

int[] arrIndex = subIndex.ToArray(); //你要的数组本回答被网友采纳
第2个回答  2013-04-01
在PHP中使用 explode() 方法可以得到 等级: 之前的字符串并转入数组
例如
$c=explode("等级:","ssddxx等级:12kkkcxc12kkk等级:31sxsd1xd等级:52kkkcsdfsdf2k等级:44");
echo $c[0]; //ssddxx
echo $c[1]; //12kkkcxc12kkk
echo $c[2]; //31sxsd1xd
echo $c[3]; //52kkkcsdfsdf2k

相信.net 也是如此 可以这样区自字符串,希望对你有所帮助
第3个回答  2013-04-01
这个不太好分析,
ssddxx等级:12kkkcxc12kkk等级:31 那个12可以分开来 等级为1 2kkkcxc 或者等级为12 kkkcxc 你说呢
第4个回答  2013-03-31
这个问题适合用正则来解决

c#里如何在一个字符串内查找所有子字符串所在的位置?并保存到一个数组...
\/\/i 为每个匹配b字符串的开始位置(从0开始)} \/

C#如何找出字符串中某一字符的所有位置
查找某字符在字符串中的所有位置时,可以首先通过ToCharArray方法将字符串转换为Char类型的数组,然后循环访问该数组,如果数组中的值与要查找的字符相同,则将其位置取出。查找某字符在字符串中所有位置的实现代码如下:privatevoidbutton1_Click(objectsender,EventArgse){stringstr=textBox1.Text.Trim();ch...

一段文本,C#如何取出其中数字部分,保存为一个数组?
按照你的要求取出IP地址和端口号,并保存为一个数组,需要用正则表达式匹配IP地址和端口号 具体程序如下 using System;using System.Text.RegularExpressions;namespace MatchSocketApplication{ class MatchSocketClass{ static void Main(string[] args){ string []xx=new string[100];int count=0;string s...

c#中如何将字符串中的数字取出来放到数组中
public static List<string> str2lst(string str) { List<string> alist = new List<string>(); System.Text.RegularExpressions.MatchCollection match = System.Text.RegularExpressions.Regex.Matches(str, @"(?<number>(\\+|-)?(0|[1-9]\\d*)(\\.\\d*[0-9])?)"); foreach ...

C#查询字符串里所有中括号内的子串
static void Main(string[] args) { string all = @"这是一段测试数据[我们100]这是一段测试数据[你们200]这是一段测试数据[他们100 谁们300]"; Regex reg = new Regex(@"\\[(.+?)]"); foreach (Match m in reg.Matches(all)) Console.WriteLine(m.Groups[1]); ...

c#获取文本框的值并存放在数组中
List<string> values = new List<string>();foreach( Control c in this.Controls){ if(c is TextBox) { values.Add(((TextBox)c).Text); }}string[] valueArray = values.ToArray(); 不过,这样做有一个问题:数组里字符串不一定和界面上的文本框顺序对应。要解决这个问题,...

c#怎么一行一行的读取TXT文本 每读取一行内容 就把这一行的内容写入一个...
string line = string.Empty;List<string> lines = new List<string>();using (StreamReader reader = new StreamReader(@"text1.txt")){ line = reader.ReadLine();while (line !=""&&line !=null){ lines.Add(line);Console.WriteLine(line);line = reader.ReadLine();} } ...

c#中的字符串查找函数
1、首先,自定义一个函数,实现是否子串的判断。2、自定义函数中,定义一个字符数组,保存得到的子串。3、如果子串为空,则输出整个字符串c。4、用while语句循环判断字符串的每个字符,条件为首字符存在。5、逐一判断每个字符,如果字符都相等,说明存在子串,输出得到的子串。6、如果以字符串的某字符...

C#中如何计算一个字符串中某个指定字符的个数
使用Contains()方法判断是否存在需要查找的字符,从而进行个数统计。具体步骤如下:1、计算字符串中子串出现的次数的代码如下:2、执行方式,调用:3、执行结果:

c#中截取两个字符串之间的值放到一个数组
用string.SubString这个方法,你先判断,如果字符串遇到姓名这2个字呢,就向后+1在取4位,就可以取到姓名,年龄的取法则是一样的。

相似回答