ayuda sobre java

zeus401
31 de Marzo del 2006
me gustaria saber como puedo leer 10 numeros desde el teclado e imprimirlo en or ascendente

Diego
31 de Marzo del 2006
import java.util.*;

public class Prueba{
public static void main(String [] args) {
int cantidad=10;
Scanner entrada=new Scanner(System.in);
List<Integer> numeros=new ArrayList<Integer>(cantidad);
while(numeros.size()<cantidad){
System.out.print("Introduce un numero: ");
if(entrada.hasNextInt())
numeros.add(entrada.nextInt());
else
System.out.println("Numero incorrecto, vuelve a escribirlo.");
}
Collections.sort(numeros);
for(int numero:numeros)
System.out.print(numero+" ");
System.out.println();
}
}

Diego
31 de Marzo del 2006
Me he dado cuenta que cuando el número no es correcto, el programa se queda bloqueado, lo cual no queda muy bien. Código corregido y documentado:
public static void main(String [] args) {
// Cantidad de números a introducir y ordenar.
int cantidad=10;
// Clase que se encarga de reconocer que hay entrada, si es un entero y
// obtenerlo.
Scanner entrada=new Scanner(System.in);
// Lista que almacena los números a introducir.
List<Integer> numeros=new ArrayList<Integer>(cantidad);
// Mientras el número de elmentos de la lista no sea suficiente...
while(numeros.size()<cantidad){
System.out.print("Introduce un numero: ");
// Si tiene algo...
if(entrada.hasNext()){
// ... y ese algo es un int, incluyelo en la lista.
if(entrada.hasNextInt())
numeros.add(entrada.nextInt());
// ... y ese algo no es un entero, obvialo y muestra por pantalla
// que no vale.
else{
entrada.next();
System.out.println("Numero incorrecto, vuelve a escribirlo.");
}
}
}
// Ordena la lista de números.
Collections.sort(numeros);
// Recorre la colección mostrando todos sus elementos ya ordenados.
for(int numero:numeros)
System.out.print(numero+" ");
System.out.println();
}
Espero que te sirva.

Dactyl
31 de Marzo del 2006
import java.io.*;
public class Leer
{
public static String dato()
{
String sdato = "";
try
{
// Definir un flujo de caracteres de entrada: flujoE
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader flujoE = new BufferedReader(isr);
// Leer. La entrada finaliza al pulsar la tecla Entrar
sdato = flujoE.readLine();
}
catch(IOException e)
{
System.err.println("Error: " + e.getMessage());
}
return sdato; // devolver el dato tecleado
}

public static short datoShort()
{
try
{
return Short.parseShort(dato());
}
catch(NumberFormatException e)
{
return Short.MIN_VALUE; // valor más pequeño
}
}

public static int datoInt()
{
try
{
return Integer.parseInt(dato());
}
catch(NumberFormatException e)
{
return Integer.MIN_VALUE; // valor más pequeño
}
}

public static long datoLong()
{
try
{
return Long.parseLong(dato());
}
catch(NumberFormatException e)
{
return Long.MIN_VALUE; // valor más pequeño
}
}

public static float datoFloat()
{
try
{
Float f = new Float(dato());
return f.floatValue();
}
catch(NumberFormatException e)
{
return Float.NaN; // No es un Número; valor float.
}
}

public static double datoDouble()
{
try
{
Double d = new Double(dato());
return d.doubleValue();
}
catch(NumberFormatException e)
{
return Double.NaN; // No es un Número; valor double.
}
}
}

/*************************************************************************/
UTILIZA ESTA CLASE PARA LEER VARIOS TIPOS DE DATOS DE ESTA FORMA
int numero=Leer.datoInt();
DE UNO EN UNO, PARA LEER DIEZ PUEDES GUARDARLOS EN UN ARREGLO Y LEERLOS MEDIANTE UN CICLO:
int[] numeros=new int[10];
for(int k=0; k<numeros.length; k++){
System.out.println("Escriba el dato numero "+k);
numeros[k]=Leer.datoInt();
}