Entrada de dados com ArrayList
13/10/2018
0
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
Post mais votado
15/11/2018
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
Mais Posts
15/11/2018
Nelson Anjos
Posta seu código, vou poder ajudar melhor.
15/11/2018
Nelson Anjos
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(); }
15/11/2018
Nelson Anjos
[ code = java ]
coloque o código aqui
[ / code ]
Sem os espaços
15/11/2018
Neto
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]
15/11/2018
Neto
18/11/2018
Nelson Anjos
Se você clicar em enter do jeito que você fez também funciona.
Clique aqui para fazer login e interagir na Comunidade :)