• String中的Indexof,LastIndexOf, Indexofany,LastIndexOfAny 的区别


    本文转载自 http://www.cnblogs.com/qinying/archive/2008/09/22/1295730.html

    定位子串是指在一个字符串中寻找其中包含的子串或者某个字符。在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用于搜索在一个字符串中,出现在一个字符数组中任意字符最后一次出现的位置。

  • 相关阅读:
    .NET设计模式系列文章《转》
    sharpwebmail邮件管理系统开源 下载及使用方法
    POJ 1949 DP?
    POJ 1948 DP
    POJ 1945 暴搜+打表 (Or 暴搜+判重)
    POJ 1944 并查集(模拟)
    POJ 3259 Wormholes SPFA判负环
    POJ 3268 Dijkstra+priority_queue或SPFA
    POJ 3299 模拟
    POJ 3342 树形DP+Hash
  • 原文地址:https://www.cnblogs.com/wphl-27/p/5932145.html
Copyright © 2020-2023  润新知