Comparação

Boa noite, no code abaixo, gostaria de saber alguma forma de estilo booleana de comparação de string para arraylist ou array.

public class teste {
     public static void main(String[] args) {

      ArrayList<String> teste = new  ArrayList<>();     
      ArrayList<String> nomes = new ArrayList<>();
      String nome;

    nomes.add("hyago");
    nomes.add("Lucas");
    nomes.add("Pedro");
    nomes.add("Rafael");
    nomes.add("Ian");
    nomes.add("Igor");
    
    nome = "Igor";
    for (int i = 0; i < nomes.size(); i++) {
       if(nome.equals(nomes.get(i))){
           System.out.println("igual");
           teste.add(nome);
       }else{
           System.out.println("Nome não existe");
       }
        
    }
    
}

}

como podemos ver no code, o print de “Nome não Existe” ira ser impresso na tela varias vezes até o laço acaba, gostaria de saber algum método para não ficar mostrando e ser + exato.

Faz if(nome.equals(nomes.get(i).getAtributo())){}. Aí, no caso, o getAtributo() pode ser o getNome(). Eu não sei como você definiu.

[quote=“Hazalith, post:1, topic:379540, full:true”]
Boa noite, no code abaixo, gostaria de saber alguma forma de estilo booleana de comparação de string para arraylist ou array.

public class teste {
public static void main(String[] args) {

  ArrayList&lt;String&gt; teste = new  ArrayList&lt;&gt;();     
  ArrayList&lt;String&gt; nomes = new ArrayList&lt;&gt;();
  String nome;

nomes.add("hyago");
nomes.add("Lucas");
nomes.add("Pedro");
nomes.add("Rafael");
nomes.add("Ian");
nomes.add("Igor");

nome = "Igor";
for (int i = 0; i &lt; nomes.size(); i++) {
   if(nome.equals(nomes.get(i))){
       System.out.println("igual");
       teste.add(nome);
   }else{
       System.out.println("Nome não existe");
   }

}

}

}

como podemos ver no code, o print de “Nome não Existe” ira ser impresso na tela varias vezes até o laço acaba, gostaria de saber algum método para não ficar mostrando e ser + exato.
[/quo

já realizei, porem ela só ser o o primeiro índice, se a pessoa pedir pra verificar outros ela não vai

if (nomes.contains(nome)) {
    // o nome está contido na lista
}

Já fiz, porém só funciona no primeiro índice, e só uma vez

Acho que entendi o que você quer.

Supondo que você tenha 10 nomes, e o último nome seja João

Da maneira que esta feita o código, vai aparecer a mensagem “Nome não existe” 9 vezes caso você digite João, e você só quer que apareça uma vez caso o nome não esteja entre esses 10 nomes, correto? Se sim, o que você precisa é de um contador, que vai somar a cada iteração, se o contador chegar ao valor 10 é pq o nome de fato não se encontra na lista e então você exibe a mensagem, caso você encontre o nome, você zera o contador e encerra o laço através do comando break

já fiz assim, porem, quando eu coloco um laço só para digitar vários nomes ele só conseguir fazer isso 1 vez dentro do laço .

O Break quebra o laço em que ele esta, ai você pode usar dois laços

1 curtida

já fiz porem não funcionar, teste nesse programar partir da lina 93 para vc ver.

https://pastebin.com/ZGRJygFH