Pessoal estou com um problema meio besta, mas preciso saber se ha um meio de armazenar dados Integers, Double, Float em um array de Numbers pela class Scanner.
Pelo que entendi, a classe Scanner só lida com primitivos, será que eu preciso scanear estes dados com outra classe?
package genericos;
import java.lang.Number;
import java.util.Scanner;
public class OrdenandoNumeros
{
public static <E> void printArray( E[] inputArray)
{
for (E element: inputArray)
{
System.out.printf("\n " + element + " " + element.getClass());
}
}
public static void main(String args[])
{
Number[] numero = {};
Scanner input = new Scanner(System.in);
for(int cont = 0; cont < 10; cont++)
{
System.out.println("Digite um número por favor: ");
// Eu insiraria o input aqui mas da erro.
}
System.out.println("Array Number contains: ");
printArray(numero);
}
}
O programa rola sim, mas o que eu quero, é montar um esquema em que o usuário não precisa se preocupar com o tipo de dado. O programa não precisaria pedir inserir o dado.
Bastaria o usuário inserir o número e o programa ordenaria os números em um array de double, outro de float, outro de double etc…
Existe um meio de reconhecer o tipo de dado como input.hasNextInt() no qual o java reconhece o dado mas não consegue inserir-lo…
Era muito mais simples do que eu imaginava…não sei porque devemos complicar tanto…enfim…agradeço a todos vocês.
Minha Solução:
package genericos;
import java.util.Scanner;
public class Main
{
public static void main(String args[])
{
int [] numInt = new int[10];
double [] numDoub = new double[10];
float [] numFloat = new float[10];
int cont = 0;
Scanner input = new Scanner(System.in);
System.out.println("Digite um número por favor: ");
while(cont < 9)
{
if(input.hasNextInt() == true)
{
System.out.println(input.hasNextInt());
numInt[cont++] = input.nextInt();
System.out.println("Inserido no array int");
System.out.printf("\nContador: %d", cont);
System.out.printf("\n\nDigite um número por favor: ");
}
else if(input.hasNextDouble())
{
System.out.println(input.hasNextDouble());
numDoub[cont++] = input.nextDouble();
System.out.println("Inserido no array doub");
System.out.printf("\nContador: %d", cont);
System.out.printf("\n\nDigite um número por favor: ");
}
else if(input.hasNextFloat())
{
System.out.println(input.hasNextFloat());
numDoub[cont++] = input.nextFloat();
System.out.println("Inserido no array float");
System.out.printf("\nContador: %d", cont);
System.out.printf("\n\nDigite um número por favor: ");
}
}
System.out.println();
for(int x = 0; x < 10; x++)
System.out.printf("%d\t%f\t%f\n", numInt[x], numDoub[x],
numFloat[x]);
}
}