zoukankan      html  css  js  c++  java
  • C# indexof和indexofany区别(转)

    定位子串是指在一个字符串中寻找其中包含的子串或者某个字符。在String类中,常用的定位子串和字符的方法包括IndexOf/LastIndexOf及IndexOfAny/LastIndexOfAny,下面进行详细介绍。

    1.IndexOf/LastIndexOf

    IndexOf方法用于搜索在一个字符串中,某个特定的字符或者子串第一次出现的位置,该方法区分大小写,并从字符串的首字符开始以0计数。如果字符串中不包含这个字符或子串,则返回-1。常用的重载形式如下所示。

    (1)定位字符:

    int IndexOf(char value)

    int IndexOf(char value, int startIndex)

    int IndexOf(char value, int startIndex, int count)

    (2)定位子串:

    int IndexOf(string value)

    int IndexOf(string value, int startIndex)

    int IndexOf(string value, int startIndex, int count)

    在上述重载形式中,其参数含义如下:

    value:待定位的字符或者子串。

    startIndex:在总串中开始搜索的其实位置。

    count:在总串中从起始位置开始搜索的字符数。

    下面的代码在“Hello”中寻找字符‘l’第一次出现的位置。

    代码4-7 使用IndexOf寻找字符第一次出现位置:Default.aspx.cs

    1.      String s=”Hello”;

    2.      int I = s.IndexOf(‘l’));               //2

    同IndexOf类似,LastIndexOf用于搜索在一个字符串中,某个特定的字符或者子串最后一次出现的位置,其方法定义和返回值都与IndexOf相同,不再赘述。

    2.IndexOfAny/LastIndexOfAny

    IndexOfAny方法功能同IndexOf类似,区别在于,它可以搜索在一个字符串中,出现在一个字符数组中的任意字符第一次出现的位置。同样,该方法区分大小写,并从字符串的首字符开始以0计数。如果字符串中不包含这个字符或子串,则返回-1。常用的IndexOfAny重载形式有3种:

    (1)int IndexOfAny(char[]anyOf)

    (2)int IndexOfAny(char[]anyOf, int startIndex)

    (3)int IndexOfAny(char[]anyOf, int startIndex, int count)

    在上述重载形式中,其参数含义如下:

    (1)anyOf:待定位的字符数组,方法将返回这个数组中任意一个字符第一次出现的位置。

    (2)startIndex:在原字符串中开始搜索的起始位置。

    (3)count:在原字符串中从起始位置开始搜索的字符数。

    下例在“Hello”中寻找字符‘l’第一次和最后一次出现的位置。

    代码4-8 使用IndexOfAny寻找子串第一次和最后一次出现位置:Default.aspx.cs

    1.      String s = “Hello”;

    2.      char[] anyOf={'H','e','l'};

    3.      int i1 = s.IndexOfAny(anyOf));                          //0

    4.      int i2 = s.LastIndexOfAny(anyOf));                   //3

    同IndexOfAny类似,LastIndexOfAny用于搜索在一个字符串中,出现在一个字符数组中任意字符最后一次出现的位置。

     

    ------------------------------------------------------------------------------

                string str = "liminandlxf";

                //str0个字符起,查找8个字符,

               //查找“and”在字符串STR中的位置[从第一个字符算起]注意:start+end不能大于str的长度

               //即在str中从第0个字符开始取8个字符得到liminand,然后在这个里面查找and的开始位置

                int Pos = str.IndexOf("and", 0,8);  //返回5

                Pos = str.IndexOf("and", 0, 7);     //返回-1

           MessageBox.Show(Pos.ToString());

    --------------------------------------------------------------------------------

       string str = "liminandlxf";
                char[] anyof = { 'l', 'a', 'f' };
                //查找anyof字符数组中的任意字符在str中第一次出现的位置
                int pos = str.IndexOfAny(anyof);      //返回0,第一个出现的是l
                MessageBox.Show(pos.ToString());
                int pos2 = str.LastIndexOfAny(anyof); //返回10,查找在anyof字符数组中的任意字符
                                                                                  //在字符串str中最后出现的位置
                MessageBox.Show(pos2.ToString());

  • 相关阅读:
    纯JS.CSS编写的可拖拽并左右分栏的插件(复制代码就能用)
    jquery on()方法重复绑定解决方法
    在PHP语言中使用JSON和将json还原成数组
    Flex 布局教程:语法篇
    在线生成大全(这里真的什么都有)
    css3(border-radius)边框圆角详解
    css常用鼠标指针形状代码
    input 正则限制输入内容
    html中input标签的tabindex属性
    CSS gradient渐变之webkit核心浏览器下的使用
  • 原文地址:https://www.cnblogs.com/a-mumu/p/4740172.html
Copyright © 2011-2022 走看看