如何获取字符串中特定的子字符串位置

本文关键字:字符串 位置 获取 何获取 | 更新日期: 2023-09-27 18:29:00

我有一个字符串121712 1512 0025 64559 7259181568 701 013 2。现在根据我的要求,我必须得到最后一个子字符串2StartIndexEndIndex。但这里的问题是,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。此外,如果一个子字符串只有一个关联,那么它们都将返回相同的值。