Comparando Sequências de Caracteres
O .NET Framework fornece vários métodos para comparar os valores de sequências de caracteres.A tabela a seguir lista e descreve os métodos de comparação de valor.
Nome do Método |
Uso |
---|---|
Compara os valores das duas sequências de caracteres.Retorna um valor inteiro. |
|
Compara duas sequências sem considerar a cultura local.Retorna um valor inteiro. |
|
Compara o objeto atual de sequência de caracteres com outra sequência de caracteres.Retorna um valor inteiro. |
|
Determina se uma sequência de caracteres começa com a sequência passada.Retorna um valor Boolean. |
|
Determina se uma sequência de caracteres termina com a sequência passada.Retorna um valor Boolean. |
|
Determina se duas sequências são iguais.Retorna um valor Boolean. |
|
Retorna a posição do índice de um caractere ou sequência, começando do início da sequência de caracteres que você está examinando.Retorna um valor inteiro. |
|
Retorna a posição do índice de um caractere ou sequência, começando do início da sequência de caracteres que você está examinando.Retorna um valor inteiro. |
Compare
O método String.Compare fornece uma maneira completa de comparar o objeto atual de sequência de caracteres com outro objeto ou sequência de caracteres.Este método é culturalmente consciente.Você pode usar essa função para comparar duas sequências ou subsequências de duas sequências de caracteres.Além disso, sobrecargas são fornecidas para considerar ou ignorar ocorrência e variação cultural.A tabela a seguir mostra os três valores inteiros que podem ser retornados por esse método.
Tipos de valor |
Condição |
---|---|
Um inteiro negativo |
strA é menor que strB . |
0 |
strA é igual a strB . |
Um número inteiro positivo - ou - 1 |
Esta instância é maior do que valor . - ou - Valor é uma referência nula ( Nothing no Visual Basic). |
Observação importante: |
---|
O Compare método destina-se principalmente a utilização quando ordenação ou classificação de cadeias de caracteres. Você não deve usar o método Compare para testar a igualdade (ou seja, para procurar um valor de retorno de 0 com nenhuma relação para se explicitamente uma sequência de caracteres é menor que ou maior que o outro).Em vez disso, para determinar se duas sequências de caracteres são iguais, use o método String.Equals(String, String, StringComparison). |
O exemplo a seguir usa o método Compare para determinar os valores relativos das duas sequências de caracteres.
Dim MyString As String = "Hello World!"
Console.WriteLine([String].Compare(MyString, "Hello World?"))
string MyString = "Hello World!";
Console.WriteLine(String.Compare(MyString, "Hello World?"));
Este exemplo exibe -1 no console.
O exemplo anterior é sensível à cultura por padrão.Para realizar uma comparação de sequências sem levar em conta a cultura, use uma sobrecarga do método String.Compare que permita que você a especificar a cultura a ser usada, fornecendo um parâmetro cultura.Para um exemplo que demonstre como usar o método String.Compare para realizar uma comparação sem levar em conta a cultura, consulte Fazendo comparações de sequências sem levar em conta a culture.
CompareOrdinal
O método String.CompareOrdinal compara dois objetos de sequência de caracteres sem considerar a cultura local.Os valores de retorno desse método são idênticos aos valores retornados pelo método Compare na tabela anterior.
Observação importante: |
---|
O CompareOrdinal método destina-se principalmente a utilização quando ordenação ou classificação de cadeias de caracteres. Você não deve usar o método CompareOrdinal para testar a igualdade (ou seja, para procurar um valor de retorno de 0 com nenhuma relação para se explicitamente uma sequência de caracteres é menor que ou maior que o outro).Em vez disso, para determinar se duas sequências de caracteres são iguais, use o método String.Equals(String, String, StringComparison). |
O exemplo a seguir usa o método CompareOrdinal para comparar os valores de duas sequências de caracteres.
Dim MyString As String = "Hello World!"
Console.WriteLine(String.CompareOrdinal(MyString, "hello world!"))
string MyString = "Hello World!";
Console.WriteLine(String.CompareOrdinal(MyString, "hello world!"));
Este exemplo exibe -32 no console.
CompareTo
O método String.CompareTo compara a sequência de caracteres que o atual objeto de sequência de caracteres encapsula a outro objeto ou sequência.Os valores de retorno desse método são idênticos aos valores retornados pelo método Compare na tabela anterior.
Observação importante: |
---|
O CompareTo método destina-se principalmente a utilização quando ordenação ou classificação de cadeias de caracteres. Você não deve usar o método CompareTo para testar a igualdade (ou seja, para procurar um valor de retorno de 0 com nenhuma relação para se explicitamente uma sequência de caracteres é menor que ou maior que o outro).Em vez disso, para determinar se duas sequências de caracteres são iguais, use o método String.Equals(String, String, StringComparison). |
O exemplo a seguir usa o método CompareTo para comparar o objeto MyString com o objeto OtherString.
Dim MyString As String = "Hello World"
Dim OtherString As String = "Hello World!"
Dim MyInt As Integer = MyString.CompareTo(OtherString)
Console.WriteLine(MyInt)
String MyString = "Hello World";
String OtherString = "Hello World!";
int MyInt = MyString.CompareTo(OtherString);
Console.WriteLine( MyInt );
Este exemplo exibe 1 no console.
Todas as sobrecargas do método String.CompareTo executam comparações que levam em conta a cultura e diferenciam maiúsculas de minúsculas por padrão.Nenhuma das sobrecargas fornecidas desse método permitem que você realize uma comparação que não leve em conta a cultura.Para que o código fique claro, é recomendável que você use o método String.Compare, especificando CultureInfo.CurrentCulture para operações que levem em conta a cultura ou CultureInfo.InvariantCulture para operações que não levem em conta a cultura.Para obter exemplos que demonstram como usar o método String.Compare para realizar comparações que levam e que não levam em conta a cultura, consulte Fazendo comparações de sequências que não levam em conta a cultura.
Equals
O método String.Equals pode facilmente determinar se duas sequências são iguais.Esse método que apresenta distinção entre maiúsculas e minúsculas retorna um valor booleano True ou False.Ele pode ser usado a partir de uma classe existente, conforme ilustrado no exemplo a seguir.O exemplo a seguir usa o método Equals para determinar se um objeto de sequência de caracteres contém a frase " Hello World ".
Dim MyString As String = "Hello World"
Console.WriteLine(MyString.Equals("Hello World"))
string MyString = "Hello World";
Console.WriteLine(MyString.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 sequência de caracteres usando um método estático.
Dim MyString As String = "Hello World"
Dim YourString As String = "Hello World"
Console.WriteLine(String.Equals(MyString, YourString))
string MyString = "Hello World";
string YourString = "Hello World";
Console.WriteLine(String.Equals(MyString, YourString));
Este exemplo exibe True no console.
StartsWith e EndsWith
Você pode usar o método String.StartsWith para determinar se um objeto de sequência de caracteres começa com os mesmos caracteres que englobam outra sequência.Esse método que diferencia maiúsculas de minúsculas retorna True se o atual objeto de sequência de caracteres começa com a sequência de caracteres passada e False se ele não começa.O exemplo a seguir usa esse método para determinar se um objeto de sequência de caracteres começa com "Hello".
Dim MyString As String = "Hello World"
Console.WriteLine(MyString.StartsWith("Hello"))
string MyString = "Hello World";
Console.WriteLine(MyString.StartsWith("Hello"));
Este exemplo exibe True no console.
O método String.EndsWith compara uma sequência passada com os caracteres que existem no final do objeto de sequência de caracteres atual.Ele também retorna um valor Booleano.O exemplo a seguir verifica o fim de uma sequência de caracteres usando o método EndsWith.
Dim MyString As String = "Hello World"
Console.WriteLine(MyString.EndsWith("Hello"))
string MyString = "Hello World";
Console.WriteLine(MyString.EndsWith("Hello"));
Este exemplo exibe False no console.
IndexOf e LastIndexOf
Você pode usar o método String.IndexOf para determinar a posição da primeira ocorrência de um determinado caractere dentro de uma sequência.Este método que diferencia maiúsculas de minúsculas inicia a contagem do início de uma sequência de caracteres e retorna a posição de um caractere passado usando um índice com base zero.Se o caractere não pode ser localizado, será retornado um valor de – 1.
O exemplo a seguir usa o método IndexOf para procurar a primeira ocorrência do caractere 'l' em uma sequência de caracteres.
Dim MyString As String = "Hello World"
Console.WriteLine(MyString.IndexOf("l"c))
string MyString = "Hello World";
Console.WriteLine(MyString.IndexOf('l'));
Este exemplo exibe 2 no console.
O método String.LastIndexOf é semelhante ao método String.IndexOf exceto pelo fato de que ela retorna a posição da última ocorrência de um determinado caractere dentro de uma sequência.Ele diferencia maiúsculas de minúsculas e usa um índice com base zero.
O exemplo a seguir usa o método LastIndexOf para procurar a primeira ocorrência do caractere 'l' em uma sequência de caracteres.
Dim MyString As String = "Hello World"
Console.WriteLine(MyString.LastIndexOf("l"c))
string MyString = "Hello World";
Console.WriteLine(MyString.LastIndexOf('l'));
Este exemplo exibe 9 no console.
Os dois métodos são úteis quando usados em conjunto com o método String.Remove.Você pode usar ambos 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.