我在该字符串中有一个字符串和索引,并希望在该索引之前获取子字符串的第一个位置
e.g。
in string"这是一个测试字符串,其中包含用于测试的其他字符串"
是否有一个函数返回给定索引
之前的子字符串的位置e.g。如果子字符串是"字符串"和索引是53,它应该返回42
如果子字符串是"字符串"和索引是30它应该返回15
感谢
答案 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;
}
我在您的示例中对其进行了测试,并给出了预期的结果。