日期:2014-05-17  浏览次数:21015 次

C#不调用任何系统函数
本帖最后由 ZK20094608 于 2013-04-04 21:27:37 编辑
C#不调用任何系统函数,实现一个字符串查找子串的函数,如果包含字串,则返回该字符串的位置值,如果不包含,则返回-1。
c# 字符串

------解决方案--------------------
int MyIndexOf(string s1, string s2)
{
    for (int i = 0; i < s1.Length - s2.Length; i++)
    {
        if (MySubstr(s1, i, s2.Length) == s2) return i;
    }
    return -1;
}

string MySubstr(string s, int start, int x)
{
    return new string(s.ToArray().Skip(start).Take(x).ToArray());
}
------解决方案--------------------
引用:
int MyIndexOf(string s1, string s2)
{
    for (int i = 0; i < s1.Length - s2.Length; i++)
    {
        if (MySubstr(s1, i, s2.Length) == s2) return i;
    }
    return -1;
}

string MySubstr……



这个不错,如果也不用Linq的话 就循环


 string MySubstr(string s, int start, int x)
        {
            StringBuilder sb = new StringBuilder();
            for (int i = start; i < start + x; i++)
            {
                sb.Append(s[i]);
            }
            return sb.ToString();
            // return new string(s.ToArray().Skip(start).Take(x).ToArray());
        }