Foros del Web » Programación para mayores de 30 ;) » Java »

leer 2 o mas palabras a un String

Estas en el tema de leer 2 o mas palabras a un String en el foro de Java en Foros del Web. Hola comunidad Toy usando Scanner para un proyecto de Java....mi problema es el siguiente... Tengo un String llamado "Ubicacion", y cuando pido por consola "Ingrese ...
  #1 (permalink)  
Antiguo 28/11/2009, 23:41
Avatar de almaesdi  
Fecha de Ingreso: enero-2005
Mensajes: 70
Antigüedad: 19 años, 3 meses
Puntos: 0
leer 2 o mas palabras a un String

Hola comunidad

Toy usando Scanner para un proyecto de Java....mi problema es el siguiente...
Tengo un String llamado "Ubicacion", y cuando pido por consola "Ingrese la direccion de su hogar" leo con next();...El problema es que eso solo me guarda la primera palabra y el resto nada...
Despues intente usar nextLine();, en algunos casos me resulto, y en otro no...porque derrepente me salta el ingreso de datos y no lee nada, es decir, por pantalla me dice "ingrese su direccion" y sige de largo, no me deja ingresar datos :S
es raro pero ya me ha pasado con multiples ejemplos en el cual al usar nextLine() se lo salta :S...

Necesito ayuda para arreglar este problema, o algun otro consejo de lectura de 2 o mas palabras desde el teclado, para leer oraciones...ojala fuera usando el scanner.

Gracias
  #2 (permalink)  
Antiguo 29/11/2009, 00:43
Avatar de Gguer  
Fecha de Ingreso: abril-2009
Mensajes: 125
Antigüedad: 15 años
Puntos: 1
Respuesta: leer 2 o mas palabras a un String

Hola

Existen las clases InputStreamReader y la clase BufferedReader para lograr que se obtengan valores del usuario. como te interesa Scanner éstas no las comento más.

Supongo que se debe a que no le has dado ningún delimitador a los tokens (trozos de frase).
Lo que creo que solucionaría esto sería el siguiente código:


Scanner obj_scanner = new Scanner(System.in).useDelimiter("/n");

Lo que se hace es que se le asigna como delimitador el salto de línea (/n) para que lea cada vez que tú pulsas enter

Ojalá te sirva y personalmente te recomiendo usar InputStreamReader, me da mejores resultados y más opciones de manipulación de streams

  #3 (permalink)  
Antiguo 29/11/2009, 10:02
Avatar de almaesdi  
Fecha de Ingreso: enero-2005
Mensajes: 70
Antigüedad: 19 años, 3 meses
Puntos: 0
Respuesta: leer 2 o mas palabras a un String

Gracias por responder....

usé el tal "useDelimiter("\n"); Al parecer funciona a medias

porque si uso "next()" e ingreso una palabra me la vuelve a pedir infinitamente(tengo casos en que necesito solo leer una palabra y nada mas)...

en cambio con nextLine() me lee mas de una palabra (lo que necesitaba), pero cuando quiero leer un entero y ocupo "nextInt()" me pasa el mismo problema con next(), ingreso un numero y me lo vuelve a pedir indefinidamente...

Posible problema....me dijiste que con Delimiter lee hasta el salto de linea, al parecer en el caso del next() y el nextInt() nunca lee el salto de linea, entonces siempre me pide el dato una y otra vez
  #4 (permalink)  
Antiguo 29/11/2009, 23:03
Avatar de Gguer  
Fecha de Ingreso: abril-2009
Mensajes: 125
Antigüedad: 15 años
Puntos: 1
Respuesta: leer 2 o mas palabras a un String

Sinceramente no he usado el Scanner pero ese es el problema más común que sucede con esa clase. Por eso mismo yo siempre uso InputStreamReader y BufferedReader para leer desde consola.

El uso de estas clases se implemeta así:
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in) );

Y ahora con el objeto bf accedes al método readLine(); para obtener la entrada desde consola. El asunto es que éste lo recibe como String y tú tendrías que convertirlo al tipo de dato correspondiente

Puedes darle una revisada a esas clases o haber si alguien nos ayuda con ese problemita de Scanner

Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




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