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 value
que é uma string a ser pesquisada. Ele retorna a posição da última ocorrência da string value
na string atual.
Se a string value
nã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:
12
Linguagem 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:
-1
Linguagem 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 StringComparison
enum.
Por exemplo, o seguinte usa o StringComparison.OrdinalIgnoreCase
que 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:
12
Linguagem 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, startIndex
especifica o índice inicial para procurar a string value
na 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:
4
Linguagem de código: C# ( cs )
Para começar a procurar uma substring value
em um índice especificado startIndex
dentro de um número de posições de caracteres count
a 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 count
parâ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 -1
porque nas 5
posiçõ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.