Foro de elhacker.net

Programación => 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
  1. System.out.println("¿Qué quieres hacer? (retiro/deposito)");
  2. accion = entrada.next();
  3. if(accion=="retiro"){
  4. if(cuenta1.getSaldo()<0){
  5. System.err.println("No puede realizar la operacion.");
  6. }
  7. else{
  8. System.out.println("¿Cuanto quiere retirar?");
  9. saldo= entrada.nextInt();
  10. cuenta1.setSaldo(saldo);
  11. System.out.println("Su accion: "+accion+", Saldo: "+cuenta1.getSaldo());
  12. }
  13. }


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  ::)