本文由机器翻译。若要查看英语原文,请勾选“英语”复选框。 也可将鼠标指针移到文本上,在弹出窗口中显示英语原文。
翻译
英语

String.LastIndexOf 方法 (String, Int32)

 

报告指定字符串在此实例中的最后一个匹配项的从零开始的索引的位置。 在指定的字符位置开始和在向后的右边该字符串的开头处理的搜索。

命名空间:   System
程序集:  mscorlib(位于 mscorlib.dll)

public int LastIndexOf(
	string value,
	int startIndex
)

参数

value
Type: System.String

要搜寻的字符串。

startIndex
Type: System.Int32

搜索起始位置。startIndex 此实例的开头开始搜索。

返回值

Type: System.Int32

如果找到该字符串,则为 value 的从零开始的起始索引位置;如果未找到该字符串或当前实例等于 String.Empty,则为 -1。 如果 valueString.Empty,则返回值为 startIndex 和此实例中的最后一个索引位置中的较小者。

Exception Condition
ArgumentNullException

valuenull

ArgumentOutOfRangeException

当前实例不等于 String.Empty,并且 startIndex 小于零或大于当前实例的长度。

- 或 -

当前实例等于 String.Empty,并且 startIndex 小于-1 或大于零。

索引号从零开始。 即,位于索引零的字符串中的第一个字符和最后一个位于Length-1。

在开始执行搜索startIndex字符位置的此实例和沿反向直到开头value找到或已检查完第一个字符位置。 例如,如果startIndexLength-1,方法搜索到开头的字符串中的最后一个字符从每个字符。

此方法执行使用当前区域性的单词 (区分大小写和区分区域性的) 搜索。

字符集包括可忽略字符,在执行语言性的或区分区域性的比较时该字符不被考虑。 在区分区域性的搜索中,如果 value 包含一个可忽略字符,则结果与移除了该字符的搜索等效。 如果value仅由一个或多个可忽略字符,组成LastIndexOf(String, Int32)方法始终返回startIndex,即开始执行搜索的字符位置。 在下面的示例中,LastIndexOf(String, Int32)方法用于查找子字符串,包含软连字符 (U + 00AD) 并且之前或在字符串中包含的最后一个"m"。 如果在上运行该示例.NET Framework 4或更高版本,因为软连字符后的搜索字符串中将被忽略,调用方法来查找子字符串,包含软连字符和"m"返回"m"的位置在字符串内,而调用此查询以查找子字符串包含软连字符和"n"返回"n"的位置。 当搜索字符串中包含仅该软连字符时,方法会返回"m",它表示的值的索引startIndex

using System;

public class Example
{
   public static void Main()
   {
      int position = 0;
      string s1 = "ani\u00ADmal";
      string s2 = "animal";

      // Find the index of the soft hyphen.
      position = s1.LastIndexOf("m");
      Console.WriteLine("'m' at position {0}", position);
      if (position >= 0)
         Console.WriteLine(s1.LastIndexOf("\u00AD", position));

      position = s2.LastIndexOf("m");
      Console.WriteLine("'m' at position {0}", position);
      if (position >= 0)   
         Console.WriteLine(s2.LastIndexOf("\u00AD", position));

      // Find the index of the soft hyphen followed by "n".
      position = s1.LastIndexOf("m");
      Console.WriteLine("'m' at position {0}", position);
      if (position >= 0)
         Console.WriteLine(s1.LastIndexOf("\u00ADn", position));

      position = s2.LastIndexOf("m");
      Console.WriteLine("'m' at position {0}", position);
      if (position >= 0)   
         Console.WriteLine(s2.LastIndexOf("\u00ADn", position));

      // Find the index of the soft hyphen followed by "m".
      position = s1.LastIndexOf("m");
      Console.WriteLine("'m' at position {0}", position);
      if (position >= 0)
         Console.WriteLine(s1.LastIndexOf("\u00ADm", position));

      position = s2.LastIndexOf("m");
      Console.WriteLine("'m' at position {0}", position);
      if (position >= 0)   
         Console.WriteLine(s2.LastIndexOf("\u00ADm", position));
   }
}
// The example displays the following output:
//       'm' at position 4
//       4
//       'm' at position 3
//       3
//       'm' at position 4
//       1
//       'm' at position 3
//       1
//       'm' at position 4
//       4
//       'm' at position 3
//       3

调用函数说明:

中所述在 .NET Framework 中使用字符串的最佳做法,我们建议你避免调用替换为默认值并改为调用需要使用参数来显式指定的方法的字符串比较方法。 若要查找特定的字符位置之前通过使用当前区域性的比较规则的子字符串的索引,请调用LastIndexOf(String, Int32, StringComparison)的值的方法重载StringComparison.CurrentCulture有关其comparisonType参数。

下面的示例查找字符串的所有匹配项的索引,在目标字符串中,从目标字符串的末尾使用到目标字符串的开头。

// Sample for String.LastIndexOf(String, Int32)
using System;

class Sample {
    public static void Main() {

    string br1 = "0----+----1----+----2----+----3----+----4----+----5----+----6----+-";
    string br2 = "0123456789012345678901234567890123456789012345678901234567890123456";
    string str = "Now is the time for all good men to come to the aid of their party.";
    int start;
    int at;

    start = str.Length-1;
    Console.WriteLine("All occurrences of 'he' from position {0} to 0.", start);
    Console.WriteLine("{1}{0}{2}{0}{3}{0}", Environment.NewLine, br1, br2, str);
    Console.Write("The string 'he' occurs at position(s): ");

    at = 0;
    while((start > -1) && (at > -1))
        {
        at = str.LastIndexOf("he", start);
        if (at > -1) 
            {
            Console.Write("{0} ", at);
            start = at - 1;
            }
        }
    Console.Write("{0}{0}{0}", Environment.NewLine);
    }
}
/*
This example produces the following results:
All occurrences of 'he' from position 66 to 0.
0----+----1----+----2----+----3----+----4----+----5----+----6----+-
0123456789012345678901234567890123456789012345678901234567890123456
Now is the time for all good men to come to the aid of their party.

The string 'he' occurs at position(s): 56 45 8


*/

通用 Windows 平台
自 8 起可用
.NET Framework
自 1.1 起可用
可移植类库
可移植 .NET 平台 中受支持
Silverlight
自 2.0 起可用
Windows Phone Silverlight
自 7.0 起可用
Windows Phone
自 8.1 起可用
返回页首
显示: