C# String IndexOf

Resumo : neste tutorial, você aprenderá como usar o IndexOf()método C# String para retornar a posição da primeira ocorrência de uma string especificada dentro da string atual.

Introdução ao método C# String IndexOf()

O método String IndexOf()permite verificar se uma string está presente na string atual:

public int IndexOf (string value);Linguagem de código:  C#  ( cs )

O IndexOf()método aceita um parâmetro valueque é uma string a ser pesquisada. Ele retorna a posição da primeira ocorrência da string valuena string atual.

Se a string valuenão estiver presente na string atual, o IndexOf()método retornará -1.

Para determinar se uma string existe dentro de outra string sem recuperar sua posição, você pode usar o Contains()método.

O exemplo a seguir usa o IndexOf()método para obter a posição inicial da string "is"na string "C# is awesome":

using static System.Console;

var message = "C# is awesome";
var index = message.IndexOf("is");
WriteLine(index);Linguagem de código:  C#  ( cs )

Saída:

3Linguagem de código:  C#  ( cs )

Por padrão, o IndexOf()método usa a comparação ordinal que considera a distinção entre maiúsculas e minúsculas e a insensibilidade à cultura para comparação de strings.

Por exemplo, o programa a seguir gera -1porque a string "IS"que é a letra maiúscula da string "is"não está presente na string "C# is Awesome":

using static System.Console;

var message = "C# is awesome";
var index = message.IndexOf("IS");
WriteLine(index);Linguagem de código:  C#  ( cs )

Saída:

-1Linguagem de código:  C#  ( cs )

Para comparar strings com distinção entre maiúsculas e minúsculas, você usa a seguinte sobrecarga do IndexOf()método:

public int IndexOf (
   string value, 
   StringComparison comparisonType
);Linguagem de código:  C#  ( cs )

Neste método, the comparisonTypeé um dos valores do StringComparisonenum.

Por exemplo, o seguinte usa o StringComparison.OrdinalIgnoreCaseque ignora maiúsculas e minúsculas das strings ao compará-las:

using static System.Console;

var message = "C# is awesome";
var index = message.IndexOf("IS", StringComparison.OrdinalIgnoreCase);
WriteLine(index);Linguagem de código:  C#  ( cs )

Saída:

3Linguagem de código:  C#  ( cs )

Por padrão, o IndexOf()método começa a procurar uma substring desde o início de uma string. Para começar a procurar uma substring em uma posição de caractere especificada, use a seguinte sobrecarga do IndexOf()método:

public int IndexOf (
   char value, 
   int startIndex
);Linguagem de código:  C#  ( cs )

Nesta sintaxe, startIndexespecifica o índice inicial para pesquisar o valor da string na string atual.

Por exemplo, o seguinte usa o IndexOf()método para encontrar o índice da segunda posição da string "se"na string "She sees the sea":

using static System.Console;

var message = "She sees the sea";
var index = message.IndexOf("se");

if(index != -1)
{
    var secondIndex = message.IndexOf("se", index + 1);
    WriteLine(secondIndex);
}Linguagem de código:  C#  ( cs )

Saída:

13Linguagem de código:  C#  ( cs )

Para procurar uma string dentro de uma substring em um índice especificado dentro de um número de posições de caracteres, você usa a seguinte sobrecarga do método IndexOf():

public int IndexOf (
    string value, 
    int startIndex, 
    int count
);Linguagem de código:  C#  ( cs )

Nesta sintaxe, the counté o número de posições de caracteres a serem pesquisadas.

O exemplo a seguir usa o countparâmetro para procurar a segunda ocorrência da string "se"na string "She sees the sea"dentro de 5 posições de caracteres:

using static System.Console;

var message = "She sees the sea";
var index = message.IndexOf("se");

if (index != -1)
{
    var secondIndex = message.IndexOf("se", index + 1, 5);
    WriteLine(secondIndex);
}Linguagem de código:  C#  ( cs )

Saída:

-1

A saída do programa -1porque dentro de 5 posições de caracteres a partir de index+1, não há ocorrência da string "se"na string pesquisada.

Resumo

  • Use o método C# String IndexOf()para encontrar o índice baseado em zero da primeira ocorrência de uma string dentro da string atual.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *