导出 (0) 打印
全部展开
此文章由机器翻译。 将光标移到文章的句子上,以查看原文。 更多信息。
译文
原文

String.IndexOf 方法 (String)

报告指定字符串在此实例中的第一个匹配项的从零开始的索引。

命名空间:  System
程序集:  mscorlib(在 mscorlib.dll 中)

public int IndexOf(
	string value
)

参数

value
类型:System.String
要搜寻的字符串。

返回值

类型:System.Int32
如果找到该字符串,则为 value 的从零开始的索引位置;如果未找到该字符串,则为 -1。 如果 valueString.Empty,则返回值为 0。

异常条件
ArgumentNullException

valuenull

索引编号从零开始。

此方法使用当前区域性执行单词(区分大小写和区域性)搜索。 该搜索从此实例的第一个字符位置开始,一直搜索到最后一个字符位置。

字符集包括可忽略字符,在执行语言性的或区分区域性的比较时该字符不被考虑。 在区分区域性的搜索中,如果 value 包含一个可忽略字符,则结果与移除了该字符的搜索等效。 如果 value 仅包含一个或多个可忽略字符,IndexOf(String) 方法始终返回 0 (零)来表示在当前实例的开始处找到匹配。 在下面的示例中,IndexOf(String) 方法用于在两个字符串中查找三个子字符串 (虚拟连字符 (U+00AD),一个虚拟连字符后有“n”个字符,另一个虚拟连字符后有“m”个字符) 。 只有一个字符串包含软连字符。 如果示例在 .NET Framework 4 或更高版本上运行,在每种情况,因为指针,连字符是一个字符 ignorable,结果是相同的,则未悬停连字符在 value中。 当只搜索虚拟连字符时,该方法返回 0 表示在该字符串开始处找到匹配。


using System;

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

      // Find the index of the soft hyphen.
      Console.WriteLine(s1.IndexOf("\u00AD"));
      Console.WriteLine(s2.IndexOf("\u00AD"));

      // Find the index of the soft hyphen followed by "n".
      Console.WriteLine(s1.IndexOf("\u00ADn"));
      Console.WriteLine(s2.IndexOf("\u00ADn"));

      // Find the index of the soft hyphen followed by "m".
      Console.WriteLine(s1.IndexOf("\u00ADm"));
      Console.WriteLine(s2.IndexOf("\u00ADm"));
   }
}
// The example displays the following output:
//       0
//       0
//       1
//       1
//       4
//       3


对调用者的说明

在 .NET Framework 中使用字符串的最佳做法 中所述,我们建议您避免调用替换默认值的字符串比较方法,而是调用需要显式指定参数的方法。 若要使用当前区域性的比较规则查找在字符串实例内某个子字符串的第一个索引,请为它的 comparisonType 参数使用 StringComparison.CurrentCulture 的值调用 IndexOf(String, StringComparison) 方法重载。

下面的示例使用 IndexOf 方法确定句子中动物名字的起始位置。 然后,该方法在此位置插入一个形容词来描述句子中的动物。


using System;

public class Example {
    public static void Main() 
    {
        string animal1 = "fox";
        string animal2 = "dog";

        string strTarget = String.Format("The {0} jumped over the {1}.", 
                                         animal1, animal2);

        Console.WriteLine("The original string is:{0}{1}{0}", 
                          Environment.NewLine, strTarget);

        Console.Write("Enter an adjective (or group of adjectives) " +
                      "to describe the {0}: ==> ", animal1);
        string adj1 = Console.ReadLine();

        Console.Write("Enter an adjective (or group of adjectives) " + 
                      "to describe the {0}: ==> ", animal2);    
        string adj2 = Console.ReadLine();

        adj1 = adj1.Trim() + " ";
        adj2 = adj2.Trim() + " ";

        strTarget = strTarget.Insert(strTarget.IndexOf(animal1), adj1);
        strTarget = strTarget.Insert(strTarget.IndexOf(animal2), adj2);

        Console.WriteLine("{0}The final string is:{0}{1}", 
                          Environment.NewLine, strTarget);
    }
}
// Output from the example might appear as follows:
//       The original string is:
//       The fox jumped over the dog.
//       
//       Enter an adjective (or group of adjectives) to describe the fox: ==> bold
//       Enter an adjective (or group of adjectives) to describe the dog: ==> lazy
//       
//       The final string is:
//       The bold fox jumped over the lazy dog.


.NET Framework

受以下版本支持:4.5.2、4.5.1、4.5、4、3.5、3.0、2.0、1.1、1.0

.NET Framework Client Profile

受以下版本支持:4、3.5 SP1

可移植类库

受以下版本支持:可移植类库

适用于 Windows 应用商店应用的 .NET

受以下版本支持:Windows 8

适用于 Windows Phone 应用的 .NET

受以下版本支持:Windows Phone 8、Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008(不支持服务器核心角色), Windows Server 2008 R2(支持带 SP1 或更高版本的服务器核心角色;不支持 Itanium)

.NET Framework 并不是对每个平台的所有版本都提供支持。有关支持的版本的列表,请参阅.NET Framework 系统要求

社区附加资源

添加
显示:
© 2014 Microsoft