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.
stringA | Less Than | stringB | Negative Integer |
stringA | Equal | stringB | Zero |
stringA | Greater Than | stringB | 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.