Данная статья переведена с помощью средств машинного перевода. Чтобы просмотреть ее на английском языке, установите флажок Английский. Вы также можете просматривать английский текст во всплывающем окне, наводя указатель мыши на переведенный текст.
Перевод
Английский

Метод String.IndexOf (String)

 

Опубликовано: Октябрь 2016

Возвращает индекс с отсчетом от нуля первого вхождения значения указанной строки в данном экземпляре.

Пространство имен:   System
Сборка:  mscorlib (в mscorlib.dll)

public int IndexOf(
	string value
)

Параметры

value
Type: System.String

Строка для поиска.

Возвращаемое значение

Type: System.Int32

Положение в индексе (начиная с нуля) параметра value, если эта строка найдена, или значение -1, если она не найдена. Если значение value равно String.Empty, то возвращаемое значение равно 0.

Exception Condition
ArgumentNullException

Свойство value имеет значение null.

Индексация начинается с нуля.

Этот метод выполняет поиск слова (с учетом регистра и культуры) с использованием текущего языка и региональных параметров. Поиск начинается с позиции первого знака данного экземпляра и продолжается до последней позиции знака.

Наборы символов содержат игнорируемые символы, то есть символы, которые не учитываются при выполнении лингвистического сравнения или сравнения с учетом языка и региональных параметров. Если при поиске с учетом языка и региональных параметров параметр value содержит игнорируемый символ, результат аналогичен поиску с удаленным этим символом. Если value состоит только из одного или нескольких игнорируемые символы,IndexOf(String) метод всегда возвращает 0 (ноль), чтобы указать совпадения в начале текущего экземпляра. В следующем примере IndexOf(String) метод используется для поиска три подстроки (мягкий перенос (U + 00AD) мягкого переноса, а затем «n» и мягкий перенос буквой «m») в двух строк. Только одна из строк содержит мягкий перенос. Если пример выполняется .NET Framework 4 или более поздней версии, в каждом случае, поскольку мягкий перенос является игнорируемый символ, результат равен как если бы мягкий перенос не были включены в 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
// if run under the .NET Framework 4 or later:
//       0
//       0
//       1
//       1
//       4
//       3

Заметки к вызывающим объектам:

Как описано в статье Рекомендации по использованию строк в .NET Framework, рекомендуется избегать вызова методов сравнения строк, которые заменяют значения по умолчанию и вместо этого вызывают методы, которые требуют явного указания параметров. Чтобы найти первый индекс подстроки в пределах экземпляра строки, используя правила сравнения строк для текущего языка и региональных параметров, вызовите IndexOf(String, StringComparison) перегрузка метода со значением StringComparison.CurrentCulture для его comparisonType параметра.

Следующий пример просматривает «n» в «animal». Так как строка индексы отсчитываются с нуля, а не, IndexOf(String) метод указывает, что «н» в позиции 1.

using System;

public class Example
{
   public static void Main()
   {
      String str = "animal";
      String toFind = "n";
      int index = str.IndexOf("n");
      Console.WriteLine("Found '{0}' in '{1}' at position {2}",
                        toFind, str, index);
   }
}
// The example displays the following output:
//        Found 'n' in 'animal' at position 1

В следующем примере используется 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.

Универсальная платформа Windows
Доступно с 8
.NET Framework
Доступно с 1.1
Переносимая библиотека классов
Поддерживается в: переносимые платформы .NET
Silverlight
Доступно с 2.0
Windows Phone Silverlight
Доступно с 7.0
Windows Phone
Доступно с 8.1
Вернуться в начало
Показ: