Test Foro de elhacker.net SMF 2.1

Programación => Programación General => Java => Mensaje iniciado por: MrDev en 13 Febrero 2016, 18:52 PM

Título: java no pilla String
Publicado por: MrDev en 13 Febrero 2016, 18:52 PM
Pues eso, pido la operacion y al introducirla se para la aplicacion, no entiendo por que.

Código (java) [Seleccionar]
System.out.println("¿Qué quieres hacer? (retiro/deposito)");
accion = entrada.next();
if(accion=="retiro"){
if(cuenta1.getSaldo()<0){
System.err.println("No puede realizar la operacion.");
}
else{
System.out.println("¿Cuanto quiere retirar?");
saldo= entrada.nextInt();
cuenta1.setSaldo(saldo);
System.out.println("Su accion: "+accion+", Saldo: "+cuenta1.getSaldo());
}
}
Título: Re: java no pilla String
Publicado por: sodark en 13 Febrero 2016, 18:54 PM
if ( accion == "retiro" )

Ahi tienes el problema. http://stackoverflow.com/questions/767372/java-string-equals-versus

Título: Re: java no pilla String
Publicado por: MrDev en 13 Febrero 2016, 19:15 PM
Vale, para comparar String hay que usar equals.
solucion: if(accion.equals("retiro")){
Título: Re: java no pilla String
Publicado por: 0xFer en 13 Febrero 2016, 19:23 PM
Para comparar objetos de tipo primitivo( int,char,boolean,double) se usa "==", pero String no es un tipo primitivo, es de un tipo objeto y el operador "==" no está definido para las variables de tipo Objeto, para compararlos se usan métodos adicionales y es el programador de la clase del objeto quien decide los criterios para decidir si un objeto es igual o diferente a otro objeto. Por ejemplo el método equals de String compara todos los caracteres del String y si todos son iguales devuelve true eso lo puedes ver en el código fuente del método, y tú puedes crear tus propias clases e implementar métodos para comparar objetos de esa clase.
Título: Re: java no pilla String
Publicado por: MrDev en 13 Febrero 2016, 19:28 PM
entiendo shur! gracias  ::)