zoukankan      html  css  js  c++  java
  • [面试题]实现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    }
  • 相关阅读:
    Git远程库版本回滚
    微软Connect(); 2017大会梳理:Azure、数据、AI开发工具
    【实验手册】使用Visual Studio Code 开发.NET Core应用程序
    Ocelot API网关的实现剖析
    微软Tech Summit 2017,等你来打Call
    “.Net 社区大会”(dotnetConf) 2017 Day 1 Keynote: .NET Everywhere
    .NET平台微服务项目汇集
    .Net Core下通过Proxy 模式 使用 WCF
    .NET Core 2.0 正式发布信息汇总
    Visual Studio 2017 : client version 1.22 is too old
  • 原文地址:https://www.cnblogs.com/sskset/p/715213.html
Copyright © 2011-2022 走看看