如何获取字符串中特定的子字符串位置
本文关键字:字符串 位置 获取 何获取 | 更新日期: 2023-09-27 18:29:00
我有一个字符串121712 1512 0025 64559 7259181568 701 013 2
。现在根据我的要求,我必须得到最后一个子字符串2
、StartIndex
和EndIndex
。但这里的问题是,2
来自第一个子串121712
,所以它正在从那里取用,这是我不想要的。。这是我试过的代码。。
string s = "121712 1512 0025 64559 7259181568 701 013 2 ";
string inout = "2";
string[] arrs = s.Split(' ');
for (int i = 0; i <= arrs.Length; i++)
{
string str = arrs[i];
if (str == inout)
{
int startIndex = s.IndexOf(arrs[i]);
int endIndex = s.IndexOf(" ", startIndex);
int difference = endIndex - startIndex;
string inoutSubstring = (startIndex + "," + difference);
}
}
请帮我解决这个问题。。谢谢
你说最后一个子字符串对吗??
s.LastIndexOf(inout)将给出inout字符串的起始索引。现在我需要在s字符串中获取Inout的endindex。添加inout。Lenght-1到s.LastIndexOf(inout)中,它将给出inout字符串的Last索引。
您可以为任何字符串指定新的字符串int或out变量,如"21"、"12"或许多其他变量。
string inout = "2";
int startIndex;
int endIndex;
startIndex = s.LastIndexOf(inout);
endIndex = startIndex + inout.Length-1;
如果我理解正确,您希望找到字符串中子字符串的最后一个关联。C#中的String
对象有一个专门为此设计的方法,String.LastIndexOf
:
string s = "121712 1512 0025 64559 7259181568 701 013 2 ";
string inout = "2";
string[] arrs = s.Split(' ');
for (int i = 0; i <= arrs.Length; i++)
{
string str = arrs[i];
if (str == inout)
{
int startIndex = s.IndexOf("2");
int endIndex = s.LastIndexOf("2");
}
}
请注意,如果这两个方法都找不到子字符串的关联,它们将返回-1。此外,如果一个子字符串只有一个关联,那么它们都将返回相同的值。