• [面试题]实现String.IndexOf功能


     1 class Program
     2    {
     3        static void Main(string[] args)
     4        {
     5            string str1 = "";
     6            string str2 = "";
     7
     8            Console.WriteLine(str1.IndexOf(str2));
     9            Console.WriteLine(StringIndexOf(str1, str2));
    10
    11            Console.ReadKey();
    12        }

    13
    14        /// <summary>
    15        /// 实现字符串的IndexOf 功能 
    16        /// </summary>
    17        /// <param name="strMain"></param>
    18        /// <param name="strExtre"></param>
    19        /// <returns></returns>

    20        static int StringIndexOf(string strMain, string strExtre)
    21        {
    22            if (strMain == null || strExtre == null)
    23                throw new Exception("String cannot be null.");
    24            if (strExtre.Length == 0return 0;
    25            if (strExtre.Length > strMain.Length) return -1;
    26
    27            //返回值
    28            int index = -1;
    29            //获取附加字符串首字符 
    30            char c = strExtre[0];
    31            //在主字符串中搜索首字符
    32            for (int i = 0; i < strMain.Length; i++)
    33            {
    34                //不匹配的话继续搜索
    35                if (false == strMain[i].Equals(c)) continue;
    36
    37                int Length = 1;
    38                //从次首字符开始比较
    39                for (int j = 1; j < strExtre.Length; j++)
    40                {
    41                    if ((i + j) >= strMain.Length) break;
    42                    if (false == strMain[i + j].Equals(strExtre[j])) break;
    43                    Length++;
    44                }

    45                //条件匹配即退出
    46                if (Length == strExtre.Length)
    47                {
    48                    index = i;
    49                    break;
    50                }

    51            }

    52
    53            return index;
    54        }

    55    }
  • 相关阅读:
    C# 设计原则-单一职责原则
    C# Linq的简单运用
    .Net Core中的管道机制
    .Net Core和.Net Framework的区别
    C# 9.0 新特性简析
    .Net core的依赖注入
    .Net IOC容器unity的使用
    网站被黑客攻击百度出现警示
    七牛云免费对象存储(解决图片加载缓慢问题)
    今天第一篇博客 说点随意的内容
  • 原文地址:https://www.cnblogs.com/sskset/p/715213.html
Copyright © 2020-2023  润新知