Entrada de dados com ArrayList
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].
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
Curtidas 1
Melhor post
Neto
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();
}
}
}
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();
}
}
}
GOSTEI 1
Mais Respostas
Nelson Anjos
13/10/2018
Olá. É só vc tirar sua pergunta de dentro do "for.
Posta seu código, vou poder ajudar melhor.
Posta seu código, vou poder ajudar melhor.
GOSTEI 0
Nelson Anjos
13/10/2018
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
""
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
Nelson Anjos
13/10/2018
Quiz dizer entre
[ code = java ]
coloque o código aqui
[ / code ]
Sem os espaços
[ code = java ]
coloque o código aqui
[ / code ]
Sem os espaços
GOSTEI 0
Neto
13/10/2018
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]
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
Neto
13/10/2018
Não saiu certo, acho que o espaço entre o igual quebrou o código :(
GOSTEI 0
Nelson Anjos
13/10/2018
Pode ser também. Mas dessa forma é igual a que postei.
Se você clicar em enter do jeito que você fez também funciona.
Se você clicar em enter do jeito que você fez também funciona.
GOSTEI 0