String LastIndexOf em C#

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

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

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

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

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

Se a string valuenão estiver presente na string atual, o LastIndexOf()()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 LastIndexOf()método para obter o índice da string "is"na string "C# is awesome":

using static System.Console;

var message = "He sees the sea";
var index = message.LastIndexOf("se");

WriteLine(index);Linguagem de código:  C#  ( cs )

Saída:

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

Por padrão, o LastIndexOf()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 seguinte gera -1 porque a string "SE"não está presente na string "He sees the sea":

using static System.Console;

var message = "He sees the sea";
var index = message.LastIndexOf("SE");

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 LastIndexOf()método:

public int LastIndexOf() (
   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 = "He sees the sea";

var index = message.LastIndexOf(
    "SE",
    StringComparison.OrdinalIgnoreCase
);

WriteLine(index);Linguagem de código:  C#  ( cs )

Saída:

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

Para começar a pesquisar uma substring a partir do final de uma string em uma posição de caractere especificada ( startIndex) e prosseguir para trás em direção ao início da string, você usa a seguinte sobrecarga do LastIndexOf()método:

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

Nesta sintaxe, startIndexespecifica o índice inicial para procurar a string valuena string atual.

Por exemplo, o seguinte usa o LastIndexOf()método para encontrar o índice da segunda ocorrência da string "se"a partir do final da string "She sees the sea":

using static System.Console;

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

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

Saída:

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

Para começar a procurar uma substring valueem um índice especificado startIndexdentro de um número de posições de caracteres counta partir do final de uma string, você usa a seguinte sobrecarga do LastIndexOf()método:

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

O exemplo a seguir usa o countparâmetro para procurar a segunda ocorrência da string "se"a partir do final da 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.LastIndexOf("se");

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

Ele retorna -1porque nas 5posições dos caracteres de index-1, não há ocorrência da string "se"na string pesquisada.

Resumo

  • Use o método C# String LastIndexOf()para encontrar o índice baseado em zero da última ocorrência de uma string dentro de outra string.

Deixe um comentário

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