eu tenho um campo Txfield e pego o valor dele e comparo com outro campo porem que ja foi inserido no BD.
porem estou com duvidas de como utilizar o compareTo , pois os dois valores sao do tipo BigDecimal.
o problema é que meio que ja me acostumei com o equals entaum nao comprendi muito bem como se usa o compareTo
segue abaixo o codigo que preciso usar o compareTo
Stringabc=newString("abc");Stringabc1=newString("abcd");intx=abc.compareTo(abc1);System.out.println("O valor é: "+x);
x será negativo, pois a string abc é menor que a abc1.
Stringabc=newString("abc");Stringabc1=newString("abc");intx=abc.compareTo(abc1);System.out.println("O valor é: "+x);
x será 0, ambas são idênticas.
Stringabc=newString("abcd");Stringabc1=newString("abc");intx=abc.compareTo(abc1);System.out.println("O valor é: "+x);
x será positivo, abc é maior que abc1
KamikazeBr1 like
O compareTo() e compareToIgnoreCase() retorna a diferença de duas Strings definindo a sua ordem alfabética entre elas.
Seguindo a tabela ASCII, ‘a’ vem antes de ‘b’ logo usando eles no método compareTo retornaria -1 pelo fato da distancia ser somente entre uma letra.
No primeiro exemplo do drsmachado a comparação se dá por ‘abc’ e ‘abcd’, logo a comparação é feita letra a letra enquanto cada letra compara resultar em 0 (equivalente) passase para a proxima letra.
drigo.angelo
De uma forma mais abrangente, o método comparteTo() é definido na Interface Comparable e compara dois objetos, retornando um valor negativo, zero, ou um valor positivo se o objeto for menor, igual ou maior que o objeto especificado.
juliocesarsrosa
entaum no caso com faria a minha comparação teria que atribuir uma variavel por exemplo result= a compareto(b)
algo assim ??
e naum compreendi a relação do ==0 >0 no final da comparação pois estou usando e funciona perfeitamente…
Se tentar fazer comparação com números monetários como parece ser seu caso irá dar problema.
StringnumeroMon="0.00";StringnumeroMon2="0.0";System.out.println(numeroMon.compareTo(numeroMon2));// retorna 1 que indica que numeroMon em ordem alfabetica vem depois de numeroMon2BigDecimalbigDecimal=newBigDecimal("0.00");BigDecimalbigDecimal2=newBigDecimal("0.0");System.out.println(bigDecimal.compareTo(bigDecimal2));//retorna 0 que indica que são de mesmo valor
[color=red]OBS[/color]:BigDecimal não aceita ',' como decimal.