Duda de lecturas de cadenas en consola

Iniciado por soser, 1 Julio 2010, 09:53 AM

0 Miembros y 1 Visitante están viendo este tema.

soser

Que tal, bien pues ando trabajando en consola y me surge un problema en la lectura de una cadena, resulta que hago esto:

Código (java) [Seleccionar]
System.out.println("Ingresa nombre de usuario de T.debito");
usude.setnombre(in.nextLine());


para pasar una cadena a mi método, pero al salir en consola no lo lee, se salta esa lectura y pasa a la siguiente, y se me hace extraño porque usando un código similar unas lineas antes lo lee normalmente.A que se debe? como puedo solucionarlo?
Gracias.

Debci

Probablemente a los delays de la aplicación o la organización de elctura por streams, mira de que amnera entrega el I/O los mensajes de entrada y salida, y verás tu error.

Por cierto recuerda que hay que poner las quotees de codigo:

[code=java]//Codigo java aqui dentro[/code]

Esta vez lo pongo yo, pero intenta hacerlo correctamente para la proxima:

http://foro.elhacker.net/java/reglas_del_foro_iexclleed_todos-t163024.0.html


Saludos

egyware

Hola
Primero hare unas suposiciones

Código (java) [Seleccionar]

class Algo{
string nombre;
public void setNombre(String nombre){
this.nombre = nombre;
}
}
//----
Scanner in = new Scanner(System.in);
System.out.println("Ingresa nombre de usuario de T.debito");
usude.setnombre(in.nextLine());


Supongo que lo tienes asi? Bueno es posible que no haya datos de entrada en el buffer por ejemplo tienes 5 lineas en la consola y lees 6, es evidente que la secta no la leera. Lo que puedes hacer que se trabe la ejecución hasta que lea la linea.
Código (java) [Seleccionar]

while(!in.hasNext()); //Hasta que encuentre le pasen una linea !!! >:(
usude.setnombre(in.nextLine());
}

Lo otro fijate bien que eso lee lineas y pueden terminar con un salto de linea '\n' o un salto linea y un retorno de carro "\n\r".
Saludos

Debci

Cita de: egyware en  1 Julio 2010, 15:06 PM
Hola
Primero hare unas suposiciones

Código (java) [Seleccionar]

class Algo{
string nombre;
public void setNombre(String nombre){
this.nombre = nombre;
}
}
//----
Scanner in = new Scanner(System.in);
System.out.println("Ingresa nombre de usuario de T.debito");
usude.setnombre(in.nextLine());

El problema creo que es que faltan datos, del su problema, yo supongo que lo que le ocurre es que la consola tira resultados y en ese momento noe sta leyendo, pero bueno, en cualquier caso tiene las dos posiblidades posibles xD

Saludos

Supongo que lo tienes asi? Bueno es posible que no haya datos de entrada en el buffer por ejemplo tienes 5 lineas en la consola y lees 6, es evidente que la secta no la leera. Lo que puedes hacer que se trabe la ejecución hasta que lea la linea.
Código (java) [Seleccionar]

while(!in.hasNext()); //Hasta que encuentre le pasen una linea !!! >:(
usude.setnombre(in.nextLine());
}

Lo otro fijate bien que eso lee lineas y pueden terminar con un salto de linea '\n' o un salto linea y un retorno de carro "\n\r".
Saludos