C# 如何获取字符串中第二个逗号的索引

C# 如何获取字符串中第二个逗号的索引,c#,.net,string,indexof,C#,.net,String,Indexof,数组中有一个字符串,它包含两个逗号、制表符和空格。我试图在字符串中删去两个单词,都在逗号之前,我真的不在乎制表符和空格 我的字符串与此类似: String s = "Address1 Chicago, IL Address2 Detroit, MI" 我得到第一个逗号的索引 int x = s.IndexOf(','); 从这里开始,我在第一个逗号的索引之前剪切字符串 firstCity = s.Substring(x-10, x).Trim() //tri

数组中有一个字符串,它包含两个逗号、制表符和空格。我试图在字符串中删去两个单词,都在逗号之前,我真的不在乎制表符和空格

我的字符串与此类似:

String s = "Address1       Chicago,  IL       Address2     Detroit, MI"
我得到第一个逗号的索引

int x = s.IndexOf(',');
从这里开始,我在第一个逗号的索引之前剪切字符串

firstCity = s.Substring(x-10, x).Trim() //trim white spaces before the letter C;
那么,如何获取第二个逗号的索引,以便获取第二个字符串


我真的很感谢你的帮助

您必须使用这样的代码

int index = s.IndexOf(',', s.IndexOf(',') + 1);

但是,您可能需要确保没有超出字符串的边界。我将把这部分留给您。

我刚刚编写了这个扩展方法,因此您可以获得字符串中任何子字符串的第n个索引

注意:要获取第一个实例的索引,请使用
nth=0

公共静态类扩展
{
公共静态int IndexOfNth(此字符串str,字符串值,int nth=0)
{
if(n<0)
抛出新ArgumentException(“无法在字符串中找到子字符串的负索引。必须以0开头”);
int offset=str.IndexOf(值);
对于(int i=0;i
字符串是否总是有2个逗号?您想现在就开始学习正则表达式。为什么不
拆分(',')
然后将所有切片放在一个数组中?@shree.pat18问得好。有时有,有时没有两个逗号。谢谢你,非常感谢你的帮助!我把这个添加到我的字符串扩展列表中(y)太棒了,正是我所需要的!