Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it L'avatar di dany80
    Registrato dal
    Feb 2008
    Messaggi
    119

    Problemi con array string args

    Ho un nuovo problema, sto apprendendo ora il linguaggio java e nel seguente codice
    codice:
    public class Principale {
            public static void main (String args[]) {
                    Persona p1,p2,p3,tmp;
                    int i;
                    //estraiamo la strina da args
                    String s=args[0];
      
                    p1=new Persona();
                    p1.setNome("mario");
                    p1.setIndirizzo("roma");
                    p1.setNumero("1234");
    
                    p2=new Persona();
                    p2.setNome("carlo");
                    p2.setIndirizzo("milano");
                    p2.setNumero("3456");
    
                    p3=new Persona();
                    p3.setNome("luca");
                    p3.setIndirizzo("torino");
                    p3.setNumero("789");
    
                    Persona rubrica[]= {p1,p2,p3} ;
                    
                    for(i=0;i<rubrica.length;i++) {
                            tmp=rubrica[i];
                            
                            if((tmp.getNome())==s) {
                                    System.out.println(tmp.getNome());
                                    System.out.println(tmp.getIndirizzo());
                                    System.out.println(tmp.getNumero());
                                    break;
                            }
                            else {
                                    System.out.println("utente non trovato");
                            }
                    }
            }
    }
    no riesco a far confrontare la stringa inserita nell' array string con una stringa inserita precedentemente
    codice:
    if((tmp.getNome())==s)
    perchè???
    Dany80

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    scusa cosa vuoi confrontare?? Due stringhe?
    In java le stringhe (o meglio gli oggetti) se confrontati con == non è detto che tornino true anche se hanno lo stesso contenuto.

    == confronta i riferimenti, ritorna true se il riferimento è uguale, false in caso contrario.

    le stringhe si confrontano con

    codice:
    if((tmp.getNome()).equals(s))

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2009
    Messaggi
    16
    Originariamente inviato da valia
    scusa cosa vuoi confrontare?? Due stringhe?
    In java le stringhe (o meglio gli oggetti) se confrontati con == non è detto che tornino true anche se hanno lo stesso contenuto.

    == confronta i riferimenti, ritorna true se il riferimento è uguale, false in caso contrario.

    le stringhe si confrontano con

    codice:
    if((tmp.getNome()).equals(s))
    condivido perfettamente, vorrei spiegarti perchè succede questo, in java gli oggetti che dichiari come le stringhe hanno dei puntatori( linguaggio c++ ) "nascosti", in poche parole con l'operazione "==" non controlli se le stringhe sono uguali ma controlli se sono uguali i loro indirizzi di memoria.
    Se hai ancora dubbi chiedi pure

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 © 2025 vBulletin Solutions, Inc. All rights reserved.