Test Foro de elhacker.net SMF 2.1

Programación => Programación General => Java => Mensaje iniciado por: soser en 1 Julio 2010, 09:53 AM

Título: Duda de lecturas de cadenas en consola
Publicado por: soser en 1 Julio 2010, 09:53 AM
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.
Título: Re: Duda de lecturas de cadenas en consola
Publicado por: Debci en 1 Julio 2010, 10:26 AM
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 (http://foro.elhacker.net/java/reglas_del_foro_iexclleed_todos-t163024.0.html)


Saludos
Título: Re: Duda de lecturas de cadenas en consola
Publicado por: 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());


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
Título: Re: Duda de lecturas de cadenas en consola
Publicado por: Debci en 1 Julio 2010, 18:19 PM
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