Eu uso o seguinte codigo para fazer uma comparação de numero de contas
public int compareTo(ContaPoupanca outra) {
if(this.getNumero() < outra.getNumero()){
return -1;
}
if(this.getNumero() > outra.getNumero()){
return 1;
}
return 0;
}
gostaria de saber como faço para mudar esse codigo para comparar Strings
desde de já agradeço
Bom em primeiro lugar quando colocar seu código você deve usar a tag correspondente ao mesmo, bem se você quiser comparar duas Strings você deve usar o método equals(), nesse caso ele retorna um booleano true se as strings forem iguais e false para caso contrário.
Segue o seu código modificado:
public int compareTo(ContaPoupanca outra) {
if(this.getNumero().equals(outra.getNumero())){//levando em consideração que o número da conta seja do tipo string
return true;
}
return false;
}
Espero ter ajudado…
Obrigado, pela atenção
e q eu preciso colocar meus objetos em ordem alfabetica
nesse metodo que eu postei ele colova em ordem numerica
mais preciso colocar em ordem alfabetica
c vc poder me ajudar
Obrigado mais uma vez
[quote=laudenpower]bem se você quiser comparar duas Strings você deve usar o método equals(), nesse caso ele retorna um booleano true se as strings forem iguais e false para caso contrário.
Segue o seu código modificado:
public int compareTo(ContaPoupanca outra) {
if(this.getNumero().equals(outra.getNumero())){//levando em consideração que o número da conta seja do tipo string
return true;
}
return false;
}
[/quote]
Cara, isso aí nem compila. Que tal resolver com UMA linha de código?
public int compareTo(ContaPoupanca outra) {
//levando em consideração que o número da conta seja do tipo string
return String.CASE_INSENSITIVE_ORDER.compare(getNumero(), outra.getNumero());
}
Aproveite seu código e modifique apenas em:
public int compareTo(ContaPoupanca outra) {
if(this.getNumero().compareTo(outra.getNumero()) > 0){
return -1;
}
if(this.getNumero().compareTo(outra.getNumero()) < 0){
return 1;
}
return 0;
}
Funcionou?
Abraços.
Eduardo, deu certo do jeito que você me passou
Obrigado a todos
[quote=erdanielli][quote=laudenpower]bem se você quiser comparar duas Strings você deve usar o método equals(), nesse caso ele retorna um booleano true se as strings forem iguais e false para caso contrário.
Segue o seu código modificado:
public int compareTo(ContaPoupanca outra) {
if(this.getNumero().equals(outra.getNumero())){//levando em consideração que o número da conta seja do tipo string
return true;
}
return false;
}
[/quote]
Cara, isso aí nem compila. Que tal resolver com UMA linha de código?
public int compareTo(ContaPoupanca outra) {
//levando em consideração que o número da conta seja do tipo string
return String.CASE_INSENSITIVE_ORDER.compare(getNumero(), outra.getNumero());
}
[/quote]
Em primeiro lugar obrigado por me corrigir o código realmente apresenta um problema, nesse caso o retorno do método deve ser boolean também.
Segue abaixo o código correto…
public boolean compareTo(ContaPoupanca outra) {
if(this.getNumero().equals(outra.getNumero())){//levando em consideração que o número da conta seja do tipo string
return true;
}
return false;
}
Bom na sua solução apesar de ser resolvido em uma linha, nem sempre o menor código é o código mais claro, sendo assim é melhor implementar a outra solução que o nosso colega proporcionou.
[quote=laudenpower][quote=erdanielli][quote=laudenpower]bem se você quiser comparar duas Strings você deve usar o método equals(), nesse caso ele retorna um booleano true se as strings forem iguais e false para caso contrário.
Segue o seu código modificado:
public int compareTo(ContaPoupanca outra) {
if(this.getNumero().equals(outra.getNumero())){//levando em consideração que o número da conta seja do tipo string
return true;
}
return false;
}
[/quote]
Cara, isso aí nem compila. Que tal resolver com UMA linha de código?
public int compareTo(ContaPoupanca outra) {
//levando em consideração que o número da conta seja do tipo string
return String.CASE_INSENSITIVE_ORDER.compare(getNumero(), outra.getNumero());
}
[/quote]
Em primeiro lugar obrigado por me corrigir o código realmente apresenta um problema, nesse caso o retorno do método deve ser boolean também.
Segue abaixo o código correto…
public boolean compareTo(ContaPoupanca outra) {
if(this.getNumero().equals(outra.getNumero())){//levando em consideração que o número da conta seja do tipo string
return true;
}
return false;
}
Bom na sua solução apesar de ser resolvido em uma linha, nem sempre o menor código é o código mais claro, sendo assim é melhor implementar a outra solução que o nosso colega proporcionou.
[/quote]
O compareTo deve SEMPRE retornar um int.
Uma implemantação bem simples, sem if’s nem nada disso:
public int compareTo(ContaPoupanca outra) {
return this.getNumero().compareTo(outra.getNumero());
}
[quote=marcobiscaro2112][quote=laudenpower][quote=erdanielli][quote=laudenpower]bem se você quiser comparar duas Strings você deve usar o método equals(), nesse caso ele retorna um booleano true se as strings forem iguais e false para caso contrário.
Segue o seu código modificado:
public int compareTo(ContaPoupanca outra) {
if(this.getNumero().equals(outra.getNumero())){//levando em consideração que o número da conta seja do tipo string
return true;
}
return false;
}
[/quote]
Cara, isso aí nem compila. Que tal resolver com UMA linha de código?
public int compareTo(ContaPoupanca outra) {
//levando em consideração que o número da conta seja do tipo string
return String.CASE_INSENSITIVE_ORDER.compare(getNumero(), outra.getNumero());
}
[/quote]
Em primeiro lugar obrigado por me corrigir o código realmente apresenta um problema, nesse caso o retorno do método deve ser boolean também.
Segue abaixo o código correto…
public boolean compareTo(ContaPoupanca outra) {
if(this.getNumero().equals(outra.getNumero())){//levando em consideração que o número da conta seja do tipo string
return true;
}
return false;
}
Bom na sua solução apesar de ser resolvido em uma linha, nem sempre o menor código é o código mais claro, sendo assim é melhor implementar a outra solução que o nosso colega proporcionou.
[/quote]
O compareTo deve SEMPRE retornar um int.
Uma implemantação bem simples, sem if’s nem nada disso:
public int compareTo(ContaPoupanca outra) {
return this.getNumero().compareTo(outra.getNumero());
}
[/quote]
Foi mal… não tinha notado que nesse caso está se fazendo uma sobreescrita…