Foros ZackYFileS

Foros ZackYFileS (http://foros.zackyfiles.com/index.php)
-   PROGRAMACIÓN Lenguajes: Visual Basic, C++, etc (http://foros.zackyfiles.com/forumdisplay.php?f=370)
-   -   Leer desde teclado en Java (http://foros.zackyfiles.com/showthread.php?t=414894)

Mi$iTo 10/03/2006 02:07

Leer desde teclado en Java
 
Hola, quisiera saber de que manera puedo realizar la lectura desde teclado en java, tal y como en pascal era por ejemplo --> writeln('Introduce un numero'); readln(num); ...
no lo tengo claro y en los manuales k busco no explica con claridad, estoy empezando con esto del Java... saludos.

Efirenet 11/03/2006 12:19

Hola, el equivalente a:

writeln('Introduce un numero');

es fácil:

[B]System.out.println('Introduce un numero');[/B]

Con respecto a la lectura desde consola, es un pelín más complicado. Yo que tú me haría una clase para estas cosas (para leer desde consola), y así, por ejemplo, para leer un entero, pondríamos en esa clase un método más o menos como éste (te pongo el código de la clase, que de momento leería un número entero desde la consola):

[CODE]

import java.io.*;
import java.util.*;

public class MyInput
{
static private StringTokenizer stok;
static private BufferedReader br
= new BufferedReader(new InputStreamReader(System.in), 1);

public static int readInt()
{
int i = 0;
try
{
String str = br.readLine();
StringTokenizer stok = new StringTokenizer(str);
i = new Integer(stok.nextToken()).intValue();
}
catch (IOException ex)
{
System.out.println(ex);
}
return i;
}
}
[/CODE]

De ésta manera, siempre que tengas que hacer un programa donde se lean números desde teclado, sólo tendrías que hacer un import de esa clase y utilizar el método MyInput.readInt().

Si, por ejemplo, quieres que la clase MyInput también sirva para leer números con decimales (double), pues le añades un método más o menos como éste:

[CODE]
public static double readDouble()
{
double d = 0;
try
{
String str = br.readLine();
stok = new StringTokenizer(str);
d = new Double(stok.nextToken()).doubleValue();
}
catch (IOException ex)
{
System.out.println(ex);
}
return d;
}
[/CODE]

Espero que te sirva de ayuda.

Un saludo

P.D: Si no entiendes el funcionamiento de éstos métodos, me lo comentas y te lo explico con más detalle.

Coke 13/03/2006 15:29

si estas empezando lo mejor es que hagas algo asi....

Código:

import java.io.*;
import java.util.*;

class Lectura_teclado {
  public static void main(String[] args) {
    int num = 0;
    BufferedReader teclado = new BufferedReader(new InputStreamReader(System.in));
    try {
      System.out.println("Introduce un numero\n");
      num = Integer.parseInt(teclado.readLine());
    }
    catch (IOException ex) {
      System.out.println(ex);
    }
    System.out.println("\nEl numero introducido es " + num + "\n");
    System.out.println("Pulsa Enter para salir");
    try {
      teclado.readLine();
    }
    catch (IOException ex1) {
    }
  }
}

como dice efirenet ....

writeln("introduce un numero"); = System.out.println("introduce un numero");

y

readln(num); =

Código:

BufferedReader br = new BufferedReader(new InputStreamReader(System.in), 1);
try {
      int num = Integer.parseInt(br.readLine());
    }
    catch (IOException ex) {
      System.out.println(ex);
    }

lo que no entiendo efirenet, es por que en esas clases usas StringTokenizer, es por si hay espacios entre los numeros, coger el primero?

Coke.


La franja horaria es GMT +2. Ahora son las 21:46.

Powered por vBulletin™ Version 3.8.10
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.
Traducido por vBsoporte - vBulletin en español
ZackYFileS - Foros de Debate