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

Clase Scanner y Strings

Estas en el tema de Clase Scanner y Strings en el foro de Java en Foros del Web. Hola muy buenas, tengo el siguiente problema: Tengo una clase Pelicula.java que tiene atributos titulo,director y duracion Al hacer un principal mediante la clase Scanner ...
  #1 (permalink)  
Antiguo 10/01/2011, 05:09
 
Fecha de Ingreso: noviembre-2010
Mensajes: 93
Antigüedad: 14 años
Puntos: 1
Clase Scanner y Strings

Hola muy buenas, tengo el siguiente problema:

Tengo una clase Pelicula.java que tiene atributos titulo,director y duracion
Al hacer un principal mediante la clase Scanner pido que introduzca un nuevo titulo para una determinada pelicula, si pongo por ejemplo "Titanic" me lo hace bien, pero si pongo "Luna nueva" me saca solo "Luna"
He probado con un bucle pero sigue sin funcionarme o lo hago mal, alguien me puede ayudar??

Este es el codigo:

import java.util.Scanner;
public class Principal_prac1_2{

public static void main(String[] args){


Pelicula p1 = new Pelicula("P1","D1",120);
Pelicula p2 = new Pelicula();

System.out.println("Titulo de p1 es " +p1.getTitulo()+ " director " +p1.getDirector()+ " duracion " +p1.getDuracion());
System.out.println("Titulo de p2 es " +p2.getTitulo()+ " director " +p2.getDirector()+ " duracion " +p2.getDuracion());


Scanner entrada = new Scanner(System.in);

System.out.println("Introduce un nuevo titulo para p2");
String aux1 = entrada.next();
while(entrada.hasNext()){
aux1 =+ entrada.next();

}
System.out.println(aux1);
p2.setTitulo(aux1);
System.out.println("El nuevo titulo de p2 " +p2.getTitulo());



}

}
  #2 (permalink)  
Antiguo 10/01/2011, 05:30
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años, 6 meses
Puntos: 306
Respuesta: Clase Scanner y Strings

La API es tu amiga

http://download.oracle.com/javase/1....l/Scanner.html

Si quieres leer una línea entera, usa nextLine()
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #3 (permalink)  
Antiguo 10/01/2011, 06:29
 
Fecha de Ingreso: noviembre-2010
Mensajes: 93
Antigüedad: 14 años
Puntos: 1
Respuesta: Clase Scanner y Strings

Muchas gracias por contentar =)
Pero no he conseguido nada, ya había mirado la api y habia intentado esto:

System.out.println("Introduce un nuevo titulo para p2");
String aux1 = entrada.nextLine();
p2.setTitulo(aux1);
System.out.println("El nuevo titulo de p2 " +p2.getTitulo());

Pero ahora no me deja escribir nada se acaba el programa.

Gracias!
  #4 (permalink)  
Antiguo 10/01/2011, 07:24
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años, 6 meses
Puntos: 306
Respuesta: Clase Scanner y Strings

En el momento en el que activas el Scanner, el programa siempre va a estar esperando a que introduzcas un nuevo valor para poder hacer la comprobación de hasNext(). Necesitas decirle cuándo puede salir del bucle.

Cita:
Scanner entrada = new Scanner(System.in);

System.out.println("Introduce un nuevo titulo para p2");
String aux1= "";
String linea = "";
while(entrada.hasNext()){
aux1 = entrada.nextLine();
if(aux1.equals("quit"))
break;
else
linea += "\n" + aux1;

}
System.out.println(linea);
Esto es para el caso en el que quieras que se vayan añadiendo un número indefinido de líneas, si sabes cuantas van a ser, usa un for.
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #5 (permalink)  
Antiguo 19/01/2011, 14:43
 
Fecha de Ingreso: enero-2011
Mensajes: 3
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: Clase Scanner y Strings

prueba ponerle un delimitador a tu metodo scanner.

prueba esto:


Código Java:
Ver original
  1. entrada.useDelimiter("\n");

lo que hara es usar el demitador de token por saltos de linea.
con esto no deberias necesitar ningun tipo de bucle.

abrazo!

Etiquetas: clase, scanner, strings
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 14:59.