Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    1,258

    confronto stringhee java

    rifaccio la mia domanda sulle stringhe..perchè è sparita....

    è sempre possibile: oggetto == "costante" per ottenere un true o false veritiero? Sono daccordo ad usare sempre equals, ma chiedo solo per capire un po' come le cose funzionano...

    Luca

    Credo che dovreste dirmi...si...comunque datemi i vostri pareri, non vi cercherò per uccidervi se non dovreste rispondermi correttamente.

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    La risposta invece è no.
    Quel confronto è valido solo quando gli oggetti String vengono dichiarati nel modo normale:
    codice:
    String a = "Ciao";
    String b = "Ciao";
    Quando, invece, le stringhe vengono create con il modo classico(mediante l'uso dell'operatore new) il confronto fallisce.

    Fallisce, di solito, anche quando la stringa viene creata tramite l'uso di un metodo di qualche classe perchè quella classe potrebbe restituire un oggetto tramite l'operatore new.
    Ecco un esempio:
    codice:
    String a = new String("Ciao");
    String b = new String("Ciao");
    
    if (a == b) System.out.println("Sono uguali");
    else System.out.println("Sono diverse");
    Questo test FALLISCE perchè gli oggetti sono DIVERSI.

    Lo stesso accade, generalmente, quando l'oggetto viene creato sfruttando un metodo di una classe:
    codice:
    class MiaClasse {
       public static String getStringa() {
          return new String("Oggetto di MiaClasse");
       }
       ...
    }
    
    class MioEsempio {
       public static void main(String [] args) {
          String a = MiaClasse.getStringa();
          String b = MiaClasse.getStringa();
          if (a==b) System.out.println("Sono uguali");
          else System.out.println("Sono diverse");
       }
    }

    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.