Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Java (http://www.forosdelweb.com/f45/)
-   -   Iniciandome en Java (http://www.forosdelweb.com/f45/iniciandome-java-377580/)

M@nrique 11/03/2006 23:06

Iniciandome en Java
 
Hola a tod@s:

Estoy empezando con Java y pum, el primer tropiezo.
tengo esto en dos clases:

Código:

/*Clase PRINCIPAL*/
import java.io.*;
public class Principal {
    public Principal() {
       
    }
    public static void main(String [] args){
        Entrada_Salida es = new Entrada_Salida();       
        System.out.println(es.consola());
    }
}
/*Clase ENTRADA_SALIDA*/
import java.io.*;
public class Entrada_Salida {
    public Entrada_Salida() {
    }
    public String consola(){
        String  a = "";
        int i=0;
        BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
        /*System.out.println((i++)+" Escriba algo:");
        try{
            a = bf.readLine();
        }catch(IOException ioe){};*/
        while(a==""){
            System.out.println((i++)+" Escriba algo:");
            try{
                a = bf.readLine();
            }catch(IOException ioe){}; 
            if(a.length()<0){
                break;
            }
        }
        return a;
    }
}

Ya digo que son clases separadas aunque forman parte de un mismo paquete.
Lo que pretendo es hacer que se repita la pregunta hasta que ésta sea contestada pero nada de nada.

stock 12/03/2006 13:52

no entendi bien, pero tu problema es que no estas leyendo bien del teclado? cual pregunta? :neurotico:

mmmmmmmmm podrias dar mas detalles?

M@nrique 13/03/2006 10:53

Claro que si:

Lo que pretendia es que el usuario se vea obligado a responder algo, lo que sea, aunque sea un espacio en blanco para que readLine() lo recoja.

Ahora bien, cuando le doy a intro, sin escribir nada en lugar de volver a decir, "Escriba algo", finaliza la aplicación, y es lo que pretendia evitar.

Gracias por el interés.

Si hay algun novat@ como yo que tenga dificultades le dejo la solución que encontré.

Código:

/*Clase PRINCIPAL*/
import java.io.*;
public class Principal {   
    public Principal() {
       
    }
    public static void main(String [] args){
        Entrada_Salida es = new Entrada_Salida();       
        es.consola();
    }
}
/*Clase ENTRADA_SALIDA*/
import java.io.*;
public class Entrada_Salida {   
    public Entrada_Salida() { 
       
    }
    public String consola(){
        String  a = "";
        int i=0;
        BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
        do{
            System.out.println((i++)+" Escriba algo:");
            try{
                a = bf.readLine();
            }catch(IOException ioe){}; 
            if(a.length()>0){
                break;
            }
        }while(a!="");
        return a;
    }
}



La zona horaria es GMT -6. Ahora son las 19:58.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.