Uso .equals com array e string?

5 respostas
C

Boa tarde,

Depois de uma longa data sem mexer com java, estou voltando para desenvolver pra web, preciso me familiarizar com sintaxe :lol: ....bom, deixando o papo de lado.

Fiz o seguinte método:

public void PesquisaCredito(String Pessoa)
    {
        for (int i=0; i<Array.length; i++)
        {
            if (Array[i].equals(Pessoa))
            {
                situacaoPessoa = "Bloqueado";
            } else {
                situacaoPessoa = "Liberado";
            }               
            
        }
    }

Andei lendo e o java usa o .equals para comparação de duas strings, desta forma que fiz ele (Método) sempre retorna Liberado, independete se achou ou não algum resultado.

Alguém pode ajudar?

att.

5 Respostas

J

Tente:

public String pesquisaCredito(String pessoa){ for (int i=0; i<array.length; i++){ if (array[i].equals(pessoa)){ return "Liberado"; } } return "Bloqueado"; }

obs.: alterei o nome das variaveis pra usar algumas convensões de nomeclatura.

R

só te lembrando que o equals é case sensitive…

manda imprimir os dois parametros antes do if e vê o valor deles…

[]'s

C

“jairelton”:
Tente:

public String pesquisaCredito(String pessoa){ for (int i=0; i<array.length; i++){ if (array[i].equals(pessoa)){ return "Liberado"; } } return "Bloqueado"; }

obs.: alterei o nome das variaveis pra usar algumas convensões de nomeclatura.

Nesse modelo a string de Retorno seria pesquisaCredito?

Porque o modelo acima, no qual uso o if dessa forma:

if (condicao)

{

acao1

} else {

acao2

}

não funciona?

Att.

J

O seu não funciona, porque se ele achar alguma coisa, continua testando, se o proximo não for igual, ele coloca bloqueado onde deveria ser liberado, a forma mais simples de corrigir seria colocar um break aí mas tá parecendo programação procedural, isso é orientação a objetos, então use como deve ser... :wink:

String[] array = //preenche
String pessoa = "Jair";

String resultado = pesquisaCredito(pessoa);

Ainda não é o ideal, pois o ideal seria você passar esse array e o nome da pessoa como parametro e receber de volta um boolean, mas já melhora!

C
"jairelton":
O seu não funciona, porque se ele achar alguma coisa, continua testando, se o proximo não for igual, ele coloca bloqueado onde deveria ser liberado, a forma mais simples de corrigir seria colocar um break aí mas tá parecendo programação procedural, isso é orientação a objetos, então use como deve ser... :wink:
String[] array = //preenche
String pessoa = "Jair";

String resultado = pesquisaCredito(pessoa);

Ainda não é o ideal, pois o ideal seria você passar esse array e o nome da pessoa como parametro e receber de volta um boolean, mas já melhora!

Cara, entendi perfeitamente suas dicas, tenho uma tendência a procedural, que, diga-se de passagem, estou lutando muito para mudar.

Obrigado.

Att.

Criado 11 de julho de 2006
Ultima resposta 11 de jul. de 2006
Respostas 5
Participantes 3