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    }
  • 相关阅读:
    vue vue-canvas-poster 生成海报
    vue 移动端拖曳指令
    小程序如何调起H5页面的支付
    vue H5微信支付代码
    java8的新特性
    java前端知识点整理
    java基础知识点整理
    ArcGis中地理数据库(sde)中概念及常见函数
    使用Arcgis时,在sde空间库常用的相关函数
    CentOS7虚拟机的网络模式-桥接模式配置
  • 原文地址:https://www.cnblogs.com/sskset/p/715213.html
Copyright © 2011-2022 走看看