Stringhe in java

di il
8 risposte

Stringhe in java

Buongiorno, volevo sapere come si utilizzano le stringhe in java. Ho guardato un po in internet e vorrei sapere come confrontare le stringhe con ciò che digita l'utente per poi svolgere il programma. Più approfonditamente se l'utente digita sì allora svolgo il programma un'altra volta, se l'utente digita no il programma termina. E se viene data qualunque altra risposta ci sarà un messaggio d'errore.
Grazie in anticipo

8 Risposte

  • Re: Stringhe in java

    Le stringhe intese come oggetti String hanno dei metodi ad essi associati, come equals per la comparazione con altre stringhe.
    P.e
    
    String risposta = "si";
    if(risposta.equals("si")) {
      System.out.println("Hai risposto si");
    }
    
  • Re: Stringhe in java

    nico_tomb ha scritto:


    Ho guardato un po in internet e vorrei sapere come confrontare le stringhe con ciò che digita l'utente per poi svolgere il programma.
    I tipi "reference" (stringhe comprese) si possono confrontare usando == ( != ) oppure equals().

    Gli operatori == e != con i tipi reference si basano SOLO sulla "identità" degli oggetti, NON sul loro contenuto. Con due variabili reference a e b, l'espressione a == b dà true solo se fanno riferimento allo stesso identico oggetto.
    Invece equals() (di Object ma è ridefinibile in una sottoclasse) è stato pensato per stabilire se due oggetti sono di significato (contenuto) "equivalente".

    Esempio classico ma con Integer (perché è più chiaro):
    Integer a = new Integer(123);
    Integer b = new Integer(123);
    Integer c = a;
    a == b è false (sono oggetti diversi!)
    a.equals(b) è true (sono oggetti diversi ma hanno uguale contenuto, il valore 123)

    a == c è true (fanno riferimento allo stesso identico oggetto)


    Se hai compreso questo, come si dice "sei a cavallo"
  • Re: Stringhe in java

    Penso di aver capito.
    Grazie del vostro prezioso aiuto.
    chiunque volesse aggiungere qualcosa a riguardo è libero di farlo
  • Re: Stringhe in java

    Nulla da aggiungere al momento... però ti propongo un piccolo "test".
    Guarda il codice seguente e prova a "indovinare" cosa stampa se viene avviato nel modo seguente:
    
    $ java Test CIAO
    

    Quindi prova a compilarlo, eseguirlo come sopra e verifica se quel che stampa è ciò che ti aspettavi o meno. Potresti avere qualche piccola sorpresina di cui si può discutere in seguito.

    Qui il codice del programma:
    
    public class Test {
       public static void main(String[] args) {
          String str1 = "CIAO";
          String str2 = args[0];
          String str3 = new String( args[0] );
          String str4 = "CIAOCIAO";
          String str5 = "CIAO" + "CIAO";
          String str6 = "CIAO" + str1;
          
          System.out.println("str1 == CIAO   : " + (str1 == "CIAO"));
          System.out.println("str2 == CIAO   : " + (str2 == "CIAO"));
          System.out.println("str2 == args[0]: " + (str2 == args[0]));
          System.out.println("str3 == str1   : " + (str3 == str1));
          System.out.println("str3 == str2   : " + (str3 == str2));
          System.out.println("str3 == args[0]: " + (str3 == args[0]));
          System.out.println("str4 == str5   : " + (str4 == str5));
          System.out.println("str5 == str6   : " + (str5 == str6));
       }
    }
    
    Ciao.
  • Re: Stringhe in java

    Mi da errore sulla stringa 2... perché ???
  • Re: Stringhe in java

    Un'altra domanda come riesco io utente a digitare lettere in java??? potrà essere banale ma tratto java da poco
  • Re: Stringhe in java

    Ho risolto nessun problema
  • Re: Stringhe in java

    nico_tomb ha scritto:


    Mi da errore sulla stringa 2... perché ???
    E che errore ti dà? In che fase? Compilazione o esecuzione? Quel codice funziona (l'ho provato, ovviamente), ma va eseguito come ho indicato nel precedente post, ovvero passandogli come parametro CIAO (scritto così, in maiuscolo).


    Ciao.
Devi accedere o registrarti per scrivere nel forum
8 risposte