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