首先,有一个问题标题几乎完全匹配我的问题(strstr() equivalent in C#),但他指的是一个做byte []比较版本的方法。
我正在寻找一个字符串比较,它输出str1中第一次出现str2的索引,但是找不到它!
string s1 = ("BetYouCantFooFind");
string s2 = ("Foo");
int idx = strstrC#(s1,s2);
当然有一个等价物?
答案 0 :(得分:8)
我认为您正在寻找IndexOf
:
int idx = s1.IndexOf(s2);
答案 1 :(得分:5)
var s1 = "BetYouCantFooFind";
var s2 = "Foo";
var idx = s1.IndexOf(s2); // Returns -1 if not found
答案 2 :(得分:4)
Console.WriteLine("BoboTheClown".IndexOf("boT"));
答案 3 :(得分:2)
我刚刚注意到这篇旧帖,并希望扩展答案。如果您不喜欢在C memicmp
或stricmp
中使用的情况,那么您可以通过这种方式扩展C#中的IndexOf
。
int idx = s1.IndexOf(s2, StringComparison.OrdinalIgnoreCase);