Articles

Ordem Lexicográfica

Posted on

Seu navegador não suporta a Tela HTML 5. Experimente o Crómio.

Para colocar itens em ordem, deve haver uma forma de comparar dois itens. Com strings, a ordem habitual é Ordem Lexicográfica. Esta é a ordem do dicionário, excepto que todas as letras maiúsculas precedem todas as letras minúsculas. Esta ordem é o que o compareTo() método da classe utiliza.

Duas cordas são lexicograficamente iguais se tiverem o mesmo comprimento e contiverem os mesmos caracteres nas mesmas posições. Neste caso, stringA.compareTo( stringB ) retorna 0.

caso contrário, stringA.compareTo( stringB ) retorna um valor negativo se StringA vem primeiro e um valor positivo se StringB vem primeiro.

Memory Aid: pense nas cordas de um dicionário como dispostas do mais pequeno para o maior. Então stringA - stringB produziria um valor negativo se stringA viesse antes de StringB.

Para determinar que cadeia vem primeiro, comparar os caracteres correspondentes das duas cadeias de caracteres da esquerda para a direita. O primeiro caracter onde as duas cordas diferem determina qual a corda que vem em primeiro lugar. Os caracteres são comparados utilizando o conjunto de caracteres Unicode. Todas as letras maiúsculas vêm antes das letras minúsculas. Se duas letras forem o mesmo caso, é utilizada a ordem alfabética para as comparar.

Se duas cordas contêm os mesmos caracteres nas mesmas posições, então a corda mais curta vem primeiro.


th>Relation

th>stringA.compareTo( stringB )

stringA Less Than stringB Negative Integer
stringA Equal stringB Zero
stringA Greater Than stringB Positive Integer


>th>Evalua até

>”Apple”.compareTo(“apple”)

>”maple”.compareTo(“morning”)

>”applecart”.compareTo(“apple”)>Positive Integer

Expressão Explicação
“Zebra”.compareTo(“ant”) Negativo Inteiro a letra maiúscula ‘Z’ vem antes da letra minúscula ‘a’
Negativo Inteiro a letra maiúscula ‘A’ vem antes da letra minúscula ‘a’
“apple”.compareTo(“orange”) Negativo Inteiro ‘a’ vem antes de ‘o’
Negativo Inteiro ‘a’ vem antes de ‘o’
“apple”.compareTo(“apple”) Zero mesmo comprimento, mesmos caracteres nas mesmas posições
“orange”.compareTo(“apple”) Positive Integer ‘o” vem depois de “a”
longer string “applecart” vem depois de “apple”
“albatross”.compareTo(“albany”) Positive Integer ‘t” vem depois de “n’


Isto é ligeiramente confuso. Note que stringA.compareTo( stringB ) devolve um inteiro negativo quando stringA e stringB estão na ordem correcta.

Deixe uma resposta

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