Entrada de dados com ArrayList

13/10/2018

0

Boa noite.
Estou com uma dúvida sobre inserir dados dentro de algum vetor, no caso no arrayList que já fornece mais opções.
Para estudo estou fazendo um jogo que preciso inserir 4 números que vai ser do jogador 1, precisa ser máximo 4 números sem repetir.
Com loop for eu consigo inserir tranquilo, mas preciso ficar digitando um número a cada ciclo para armazenar na variável.
Teria como digitar os 4 números e esses já encaixarem direto em uma variável de vetor/arrayList direto, ex: digito 1234 e jogaria para o vetor[1,2,3,4].
Neto

Neto

Responder

Post mais votado

15/11/2018

Boa tarde Nelson, segue o código.

package jogonumeros;

import java.util.*;

public class JogoNumeros {

public static void main(String[] args) {
Scanner entrada = new Scanner(System.in);
Integer[] num = {1,2,3,4}; //Número de exemplo para ser adivinhado
int[] pal = new int[4];
List<Integer> n = Arrays.asList(num);
int fim = 0;

while(fim < 5){
int bom = 0;
int regular = 0;
int nenhum = 0;

for (int i = 0; i < pal.length; i++){
System.out.print("Digite 4 números: ");
try{
pal[i] = Integer.parseInt(entrada.nextLine());
}catch(NumberFormatException e){
System.out.println("Digite apenas números");
pal[i] = entrada.nextInt();
}
nenhum = pal[i];

}
if( !n.contains(nenhum)){
System.out.println("Nenhum!!!!");
}

for (int y = 0; y < pal.length; y++){
if (pal[y] == num[y]){
bom += 1;
}

if ( n.contains(pal[y]) && pal[y]!= num[y]){
regular += 1;
}
}
if(bom == 4){
fim = bom;
System.out.println("Acertou");
break;
}
System.out.println(bom + " B e " + regular + " R");
System.out.println();
}
}
}

Neto

Neto
Responder

Mais Posts

15/11/2018

Nelson Anjos

Olá. É só vc tirar sua pergunta de dentro do "for.
Posta seu código, vou poder ajudar melhor.
Responder

15/11/2018

Nelson Anjos

Hum... Desta forma que você quer é complicado por que se o usuário quiser digitar 10 ou 32, que é uma dezena, como o algoritmo vai saber que se trata de uma dezena e não unidade?
O que você pode fazer é pedir que o usuário escolha um número e em seguida pressione enter.
Quando você escrever um código aqui coloque entre as tags sem aspas
"
" 
insira o código aqui
"
"

Scanner entrada = new Scanner(System.in);
        Integer[] num = {1, 2, 3, 4}; //Número de exemplo para ser adivinhado
        int[] pal = new int[4];
        List<Integer> n = Arrays.asList(num);
        int fim = 0;

        while (fim < 5) {
            int bom = 0;
            int regular = 0;
            int nenhum = 0;

            System.out.print("Digite 4 números:\\nAo escolher o número pressione enter para o próximo.\\n");//Colei aqui
            for (int i = 0; i < pal.length; i++) {
                //O que estava aqui
                try {
                    pal[i] = Integer.parseInt(entrada.nextLine());
                } catch (NumberFormatException e) {
                    System.out.println("Digite apenas números");
                    pal[i] = entrada.nextInt();
                   
                }
                nenhum = pal[i];

            }
            if (!n.contains(nenhum)) {
                System.out.println("Nenhum!!!!");
            }

            for (int y = 0; y < pal.length; y++) {
                if (pal[y] == num[y]) {
                    bom += 1;
                }

                if (n.contains(pal[y]) && pal[y] != num[y]) {
                    regular += 1;
                }
            }
            if (bom == 4) {
                fim = bom;
                System.out.println("Acertou");
                break;
            }
            System.out.println(bom + " B e " + regular + " R");
            System.out.println();
        }
Responder

15/11/2018

Nelson Anjos

Quiz dizer entre
[ code = java ]

coloque o código aqui

[ / code ]
Sem os espaços
Responder

15/11/2018

Neto

Boa noite Nelson.
Tentei adicionar as tags mas não achei um botão que tivesse elas prontas e não tem botão editar também, valeu pela dica.
Sobre o código, eu vi uma forma de fazer, mas cria variáveis separada, então digita os números separado por espaço.
No caso do usuário digitar 10 como no exemplo, então seria 2 números, faltando mais 2 dos 4 permitidos.
Olha a outra forma que encontrei, mas sai do formato de array, e ainda precisa apertar o espaço.

[code = java]
System.out.println("Entre com 4 números inteiros separado por espaços: ");
int number1 = input.nextInt();
int number2 = input.nextInt();
int number3 = input.nextInt();
int number4 = input.nextInt();
[/code]
Responder

15/11/2018

Neto

Não saiu certo, acho que o espaço entre o igual quebrou o código :(
Responder

18/11/2018

Nelson Anjos

Pode ser também. Mas dessa forma é igual a que postei.
Se você clicar em enter do jeito que você fez também funciona.
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar