Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Java - If / else if...dove sbaglio?
Forum - Java - If / else if...dove sbaglio?

Avatar
Ture_70 (Normal User)
Rookie


Messaggi: 30
Iscritto: 25/01/2009

Segnala al moderatore
Postato alle 21:09
Mercoledì, 04/11/2009
Salve, stò sviluppando (o almeno ci provo) a sviluppare piccole applicazioni per cellulari, quello che vi chiedo è un istruzione basilare del java, spero possiate aiutarmi. Vi posto il codice:
Codice sorgente - presumibilmente Java

  1. import javax.microedition.midlet.*;
  2. import javax.microedition.lcdui.*;
  3.  
  4. public class applicazione extends MIDlet implements CommandListener {
  5.   private Display display;
  6.   private TextBox textbox;
  7.   private Command submit;
  8.   private Command exit;
  9.  
  10.   public applicazione() {
  11.      display = Display.getDisplay(this);
  12.      submit = new Command("Submit", Command.SCREEN, 1);
  13.      exit = new Command("Exit", Command.EXIT, 1);
  14.      textbox = new TextBox("Nome", "", 30, TextField.ANY);
  15.      textbox.addCommand(exit);
  16.      textbox.addCommand(submit);    
  17.      textbox.setCommandListener(this);  
  18.     }
  19.  
  20.   public void startApp() {
  21.      display.setCurrent(textbox);
  22.     }
  23.  
  24.   public void pauseApp() {
  25.     }
  26.  
  27.   public void destroyApp(boolean unconditional) {
  28.     }
  29.  
  30.   public void commandAction(Command command, Displayable displayable) {
  31.    if (command == submit) {
  32.        if (textbox.getString() == "Carlo") {
  33.        textbox.setString("Uguale");           // è qui l' errore?
  34.        }
  35.        else if (textbox.getString() != "Carlo") {
  36.        textbox.setString("Diverso");
  37.        textbox.removeCommand(submit);
  38.        }
  39.    }
  40.    else if (command == exit) {
  41.       destroyApp(false);
  42.       notifyDestroyed();
  43.    }
  44.   }
  45. }



Perche qualsiasi cosa inserisca il testo della textbox è sempre "Diverso"? Potreste dirmi dove sbaglio? grazie 1000

PM Quote
Avatar
gio97 (Ex-Member)
Guru


Messaggi: 715
Iscritto: 25/04/2009

Segnala al moderatore
Postato alle 21:22
Mercoledì, 04/11/2009
Dovresti usare il metodo isEqual, o una roba simile. È un metodo degli oggetti String che confronta la stringa passata per parametro e restituisce un valore booleano che dice se le due stringhe sono uguali, non si può usare come in C++ l'operatore di uguaglianza.

Ultima modifica effettuata da gio97 il 04/11/2009 alle 21:23
PM Quote
Avatar
lorenzo (Normal User)
Guru


Messaggi: 1178
Iscritto: 15/04/2008

Segnala al moderatore
Postato alle 22:51
Mercoledì, 04/11/2009
Testo quotato

Postato originariamente da gio97:

non si può usare come in C++ l'operatore di uguaglianza.



scusa e da quando in C++ si può usare l'operatore di uguaglianza per le stringhe??? La classe string non espone nessun operator== mentre le gli array di char * non per parliamo neanche...

Ultima modifica effettuata da lorenzo il 04/11/2009 alle 22:51
PM Quote
Avatar
gio97 (Ex-Member)
Guru


Messaggi: 715
Iscritto: 25/04/2009

Segnala al moderatore
Postato alle 7:08
Giovedì, 05/11/2009
Nella classe string del C++ l'operatore == è ridefinito, guarda qua: http://www.cplusplus.com/reference/string/operators/.
Comunque è :ot:. E gli array di char sono tipici del C, non del C++.

Ultima modifica effettuata da gio97 il 05/11/2009 alle 7:08
PM Quote
Avatar
TheKaneB (Member)
Guru^2


Messaggi: 1792
Iscritto: 26/06/2009

Segnala al moderatore
Postato alle 11:48
Giovedì, 05/11/2009
prova così:

Codice sorgente - presumibilmente Java

  1. if (textBox.getString().equals("Ciao"))
  2. {
  3.    // ecc...
  4. }


PM Quote