位置前的第一个指数

时间:2015-07-01 18:00:02

标签: c# string

我在该字符串中有一个字符串和索引,并希望在该索引之前获取子字符串的第一个位置

e.g。

in string"这是一个测试字符串,其中包含用于测试的其他字符串"

是否有一个函数返回给定索引

之前的子字符串的位置

e.g。如果子字符串是"字符串"和索引是53,它应该返回42

如果子字符串是"字符串"和索引是30它应该返回15

感谢

5 个答案:

答案 0 :(得分:5)

尝试类似:

var res = yourString.Substring(0, index).LastIndexOf(stringToMatch);

答案 1 :(得分:5)

像你可以开始的IndexOf()一样,lastIndexOf也为你提供了一个从后退开始的地方

var myString = "this is a test string that contains other string for testing";
var lastIndexOf = myString.LastIndexOf("string", 30);
  

报告此实例中最后一次出现的指定字符串的从零开始的索引位置。搜索从指定的字符位置开始,然后向后朝向字符串的开头。

答案 2 :(得分:0)

所以你想要一个给定索引之前的最后一个索引......

var myString = "this is a test string that contains other string for testing";
myString = String.SubString(0, 53);
var lastIndexOf = myString.LastIndexOf("string");

答案 3 :(得分:0)

你可以简单地将子串从0到索引,并在这个子串上询问它的最后一个索引

YourString.substring(0,索引).LastIndexOf( “串”);

答案 4 :(得分:0)

我知道我迟到了,但这是我正在使用的解决方案:

    public static int FindIndexBefore(this string text, int startIndex, string searchString)
    {
        for (int index = startIndex; index >= 0; index--)
        {
            if (text.Substring(index, searchString.Length) == searchString)
            {
                return index;
            }
        }

        return -1;
    }

我在您的示例中对其进行了测试,并给出了预期的结果。