Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O .NET fornece vários métodos para comparar os valores das cadeias de caracteres. A tabela a seguir lista e descreve os métodos de comparação de valor.
| Nome do método | Utilização |
|---|---|
| String.Compare | Compara os valores de duas cadeias de caracteres. Retorna um valor inteiro. |
| String.CompareOrdinal | Compara duas cadeias de caracteres sem considerar a cultura local. Retorna um valor inteiro. |
| String.CompareTo | Compara o objeto de cadeia de caracteres atual com outra cadeia de caracteres. Retorna um valor inteiro. |
| String.StartsWith | Determina se uma cadeia de caracteres começa com a cadeia de caracteres passada. Retorna um valor booliano. |
| String.EndsWith | Determina se uma cadeia de caracteres termina com a cadeia de caracteres passada. Retorna um valor booliano. |
| String.Contains | Determina se um caractere ou cadeia de caracteres ocorre dentro de outra cadeia de caracteres. Retorna um valor booliano. |
| String.Equals | Determina se duas cadeias de caracteres são as mesmas. Retorna um valor booliano. |
| String.IndexOf | Retorna a posição de índice de um caractere ou cadeia de caracteres, começando desde o início da cadeia de caracteres que você está examinando. Retorna um valor inteiro. |
| String.LastIndexOf | Retorna a posição de índice de um caractere ou cadeia de caracteres, começando do final da cadeia de caracteres que você está examinando. Retorna um valor inteiro. |
método Compare
O método estático String.Compare fornece uma maneira completa de comparar duas cadeias de caracteres. Esse método é culturalmente consciente. Você pode usar essa função para comparar duas cadeias de caracteres ou subcadeias de caracteres de duas cadeias de caracteres. Além disso, são fornecidas sobrecargas que consideram ou desconsideram maiúsculas e minúsculas e variação cultural. A tabela a seguir mostra os três valores inteiros que esse método pode retornar.
| Valor de retorno | Condição |
|---|---|
| Um inteiro negativo | A primeira cadeia de caracteres precede a segunda cadeia de caracteres na ordem de classificação. - ou - A primeira cadeia de caracteres é null. |
| 0 | A primeira cadeia de caracteres e a segunda cadeia de caracteres são iguais. - ou - Ambas as cadeias de caracteres são null. |
| Um inteiro positivo - ou - 1 |
A primeira cadeia de caracteres segue a segunda cadeia de caracteres na ordem de classificação. - ou - A segunda cadeia de caracteres é null. |
Importante
O String.Compare método destina-se principalmente ao uso ao ordenar ou classificar cadeias de caracteres. Você não deve usar o String.Compare método para testar a igualdade (ou seja, para procurar explicitamente um valor retornado de 0 sem considerar se uma cadeia de caracteres é menor ou maior que a outra). Em vez disso, para determinar se duas cadeias de caracteres são iguais, use o String.Equals(String, String, StringComparison) método.
O exemplo a seguir usa o String.Compare método para determinar os valores relativos de duas cadeias de caracteres.
string string1 = "Hello World!";
Console.WriteLine(String.Compare(string1, "Hello World?"));
Dim string1 As String = "Hello World!"
Console.WriteLine(String.Compare(string1, "Hello World?"))
Este exemplo exibe -1 no console.
O exemplo anterior é sensível à cultura por padrão. Para executar uma comparação de cadeia de caracteres insensível à cultura, use uma sobrecarga do método String.Compare que permite especificar a cultura a ser utilizada ao fornecer um parâmetro de cultura. Para obter um exemplo que demonstra como usar o String.Compare método para executar uma comparação que não diferencia a cultura, consulte comparações de cadeia de caracteres que não diferenciam cultura.
método CompareOrdinal
O String.CompareOrdinal método compara dois objetos de cadeia de caracteres sem considerar a cultura local. Os valores retornados desse método são idênticos aos valores retornados pelo Compare método na tabela anterior.
Importante
O String.CompareOrdinal método destina-se principalmente ao uso ao ordenar ou classificar cadeias de caracteres. Você não deve usar o String.CompareOrdinal método para testar a igualdade (ou seja, para procurar explicitamente um valor retornado de 0 sem considerar se uma cadeia de caracteres é menor ou maior que a outra). Em vez disso, para determinar se duas cadeias de caracteres são iguais, use o String.Equals(String, String, StringComparison) método.
O exemplo a seguir usa o CompareOrdinal método para comparar os valores de duas cadeias de caracteres.
string string1 = "Hello World!";
Console.WriteLine(String.CompareOrdinal(string1, "hello world!"));
Dim string1 As String = "Hello World!"
Console.WriteLine(String.CompareOrdinal(string1, "hello world!"))
Este exemplo exibe -32 no console.
método CompareTo
O String.CompareTo método compara a cadeia de caracteres que o objeto de cadeia de caracteres atual encapsula com outra cadeia de caracteres ou objeto. Os valores retornados desse método são idênticos aos valores retornados pelo String.Compare método na tabela anterior.
Importante
O String.CompareTo método destina-se principalmente ao uso ao ordenar ou classificar cadeias de caracteres. Você não deve usar o String.CompareTo método para testar a igualdade (ou seja, para procurar explicitamente um valor retornado de 0 sem considerar se uma cadeia de caracteres é menor ou maior que a outra). Em vez disso, para determinar se duas cadeias de caracteres são iguais, use o String.Equals(String, String, StringComparison) método.
O exemplo a seguir usa o String.CompareTo método para comparar o string1 objeto com o string2 objeto.
string string1 = "Hello World";
string string2 = "Hello World!";
int MyInt = string1.CompareTo(string2);
Console.WriteLine( MyInt );
Dim string1 As String = "Hello World"
Dim string2 As String = "Hello World!"
Dim MyInt As Integer = string1.CompareTo(string2)
Console.WriteLine(MyInt)
Este exemplo exibe -1 no console.
Todas as sobrecargas do método String.CompareTo executam comparações que são sensíveis à cultura e que diferenciam maiúsculas de minúsculas por padrão. Nenhuma sobrecarga desse método é fornecida que permita que você execute uma comparação insensível à cultura. Para maior clareza de código, recomendamos que você use o método String.Compare, especificando CultureInfo.CurrentCulture para operações sensíveis à cultura ou CultureInfo.InvariantCulture para operações insensíveis à cultura. Para exemplos que demonstram como usar o método String.Compare para executar comparações sensíveis à cultura e insensíveis à cultura, consulte Realizando comparações de strings Culture-Insensitive.
método Equals
O String.Equals método pode determinar facilmente se duas cadeias de caracteres são as mesmas. Esse método sensível a maiúsculas e minúsculas retorna um valor booliano true ou false. Ele pode ser usado de uma classe existente, conforme ilustrado no próximo exemplo. O exemplo a seguir usa o Equals método para determinar se um objeto de cadeia de caracteres contém a frase "Olá, Mundo".
string string1 = "Hello World";
Console.WriteLine(string1.Equals("Hello World"));
Dim string1 As String = "Hello World"
Console.WriteLine(string1.Equals("Hello World"))
Este exemplo exibe True no console.
Esse método também pode ser usado como um método estático. O exemplo a seguir compara dois objetos de cadeia de caracteres usando um método estático.
string string1 = "Hello World";
string string2 = "Hello World";
Console.WriteLine(String.Equals(string1, string2));
Dim string1 As String = "Hello World"
Dim string2 As String = "Hello World"
Console.WriteLine(String.Equals(string1, string2))
Este exemplo exibe True no console.
Métodos StartsWith e EndsWith
Você pode usar o String.StartsWith método para determinar se um objeto de cadeia de caracteres começa com os mesmos caracteres que abrangem outra cadeia de caracteres. Esse método que diferencia maiúsculas de minúsculas retornará true se o objeto de cadeia de caracteres atual começar com a cadeia de caracteres passada e false se não o fizer. O exemplo a seguir usa esse método para determinar se um objeto de cadeia de caracteres começa com "Hello".
string string1 = "Hello World";
Console.WriteLine(string1.StartsWith("Hello"));
Dim string1 As String = "Hello World!"
Console.WriteLine(string1.StartsWith("Hello"))
Este exemplo exibe True no console.
O String.EndsWith método compara uma cadeia de caracteres passada com os caracteres que existem no final do objeto de cadeia de caracteres atual. Ele também retorna um valor booliano. O exemplo a seguir verifica o final de uma cadeia de caracteres usando o EndsWith método.
string string1 = "Hello World";
Console.WriteLine(string1.EndsWith("Hello"));
Dim string1 As String = "Hello World!"
Console.WriteLine(string1.EndsWith("Hello"))
Este exemplo exibe False no console.
Métodos IndexOf e LastIndexOf
Você pode usar o String.IndexOf método para determinar a posição da primeira ocorrência de um caractere específico dentro de uma cadeia de caracteres. Esse método que diferencia maiúsculas de minúsculas começa a contar desde o início de uma cadeia de caracteres e retorna a posição de um caractere passado usando um índice baseado em zero. Se o caractere não puder ser encontrado, um valor de –1 será retornado.
O exemplo a seguir usa o IndexOf método para pesquisar a primeira ocorrência do caractere 'l' em uma cadeia de caracteres.
string string1 = "Hello World";
Console.WriteLine(string1.IndexOf('l'));
Dim string1 As String = "Hello World!"
Console.WriteLine(string1.IndexOf("l"))
Este exemplo exibe 2 no console.
O String.LastIndexOf método é semelhante ao String.IndexOf método, exceto pelo fato de retornar a posição da última ocorrência de um caractere específico dentro de uma cadeia de caracteres. Diferencia maiúsculas de minúsculas e usa um índice baseado em zero.
O exemplo a seguir usa o LastIndexOf método para pesquisar a última ocorrência do caractere 'l' em uma cadeia de caracteres.
string string1 = "Hello World";
Console.WriteLine(string1.LastIndexOf('l'));
Dim string1 As String = "Hello World!"
Console.WriteLine(string1.LastIndexOf("l"))
Este exemplo exibe 9 no console.
Ambos os métodos são úteis quando usados em conjunto com o String.Remove método. Você pode usar os métodos IndexOf ou LastIndexOf para recuperar a posição de um caractere e, em seguida, fornecer essa posição ao método Remove para remover um caractere ou uma palavra que começa com esse caractere.
Consulte também
- Práticas recomendadas para usar cadeias de caracteres no .NET
- Executar operações de cadeia de caracteres que não diferenciam cultura
- Classificação de tabelas de peso – usadas pelo .NET Framework e pelo .NET Core 1.0-3.1 no Windows
- Tabela de elementos de ordenação Unicode padrão – usada pelo .NET 5 em todas as plataformas e pelo .NET Core no Linux e macOS