La classe "String" di Java contiene più metodi per confrontare fra loro stringhe e porzioni di stringhe. Alcuni di questi metodi restituiscono un valore intero mentre altri un valore booleano. Questo articolo mostra come utilizzare i metodi forniti da Java mediante la classe "String" per eseguire il confronto fra due stringhe.

Passaggi

  1. 1
    Crea due oggetti di tipo "String". In Java il modo più semplice per dichiarare una stringa consiste nell'utilizzare il seguente codice. La parola chiave "String" indica la dichiarazione del tipo di oggetto che si intende creare. I valori "string1" e "string2" rappresentano i nomi dei due oggetti di tipo "String". Le parole "ciao" e "padre" rappresentano i valori memorizzati all'interno delle due stringhe. Nel momento in cui il compilatore di Java incontra le virgolette procederà automaticamente alla creazione dinamica della stringa assegnandole il valore indicato.
      String string1 = "ciao";
      String string2 = "padre";
      
  2. 2
    Usa il metodo "startsWith(String prefisso)" per comparare la parte iniziale di due stringhe. Questo metodo della classe "String" esegue il confronto della parte iniziale di una stringa con la serie di caratteri indicata dal parametro "prefisso" restituendo un valore booleano come risultato del confronto. In questo caso i risultati che si potranno ottenere saranno solo due: "true" o "false". Esegui il confronto utilizzando il seguente codice di esempio e una delle due stringhe creata nel passaggio precedente. Nel codice di esempio vengono mostrati entrambi gli scenari possibili, cioè il caso in cui si ottiene il valore "true" e quello in cui si ottiene "false". Tali valori verranno stampati a video come risultato del confronto.
      System.out.println(string1.startsWith("ci")); //verrà stampato a video il valore true
      System.out.println(string1.startsWith("mo")); //verrà stampato a video il valore false
      
  3. 3
    Usa il metodo "startsWith(String prefisso, int offset)". Questo metodo della classe "String" esegue il confronto della parte iniziale di una stringa con la serie di caratteri indicata nel parametro "prefisso", partendo dalla posizione specificata dal valore numerico "offset", restituendo un valore booleano come risultato del confronto. Tutti i caratteri che si trovano prima della posizione indicata dal parametro "offset" verranno ignorati durante il confronto. Il seguente codice di esempio mostra entrambi gli scenari possibili, cioè il caso in cui si ottiene il valore "true" e quello in cui si ottiene il valore "false". È bene precisare che in Java la posizione del carattere iniziale di una stringa parte dal valore 0, quindi nel nostro esempio i caratteri c e i della stringa "ciao" si trovano rispettivamente nella posizione 0 e 1.
      System.out.println(string1.startsWith("o", 3)); //verrà stampato a video il valore true
      System.out.println(string1.startsWith("lo", 1)); //verrà stampato a video il valore false
      
  4. 4
    Usa il metodo "endsWith(String suffisso)" per comparare la parte iniziale di due stringhe. Questo metodo della classe "String" esegue il confronto della parte finale di una stringa con la serie di caratteri indicata dal parametro "suffisso" restituendo un valore booleano come risultato del confronto. In questo caso il metodo partirà dalla fine della stringa indicata e utilizzerà la lunghezza della stringa "suffisso" per spostarsi a ritroso all'interno della prima ed eseguire il confronto. Il codice di esempio mostra entrambi gli scenari possibili, cioè il caso in cui si ottiene il valore "true" e quello in cui si ottiene il valore "false". Tali valori verranno stampati a video come risultato del confronto.
      System.out.print(string2.endsWith("dre")); //verrà stampato a video il valore true
      System.out.print(string1.endsWith("he")); //verrà stampato a video il valore false
      
  5. 5
    Utilizza il metodo compareTo(String stringa_di_confronto) per confrontare due stringhe. La sintassi per utilizzare questo metodo di Java per confrontare le due stringhe di esempio è la seguente: string1.compareTo(string2) oppure string2.compareTo(string1). In questo caso verrà restituito un valore intero come risultato del confronto, cioè un numero. Se le due stringhe confrontate non sono uguali, verrà restituito un valore numerico diverso da 0, mentre se sono identiche verrà restituito il valore 0. Il seguente codice di esempio mostra entrambi gli scenari (sia nel caso in cui le stringhe sono uguali sia nel caso in cui sono diverse) stampando a video il risultato del confronto.
      String string1 = "ciao";
      String string2 = "ciao";
      String string3 = "padre";
      System.out.println(string1.compareTo(string2)); //verrà stampato a video il valore 0 perché le due stringhe sono uguali
      System.out.println(string1.compareTo(string3); //verrà stampato a video un valore diverso da 0 perché le due stringhe non sono uguali
      
    Pubblicità

Consigli

  • Puoi utilizzare i metodi di confronto spiegati nell'articolo all'interno di un blocco di codice condizionale per poter stampare a video un messaggio di errore nel caso in cui le stringhe testate non siano uguali. Ecco il relativo codice di esempio:
    if (string1.compareTo(string2) != 0)
    {
    System.out.println("Errore! Le stringhe " + string1 + " e " + string2 + " non sono uguali");
    }
    
  • Se hai la sola necessità di sapere se due stringhe sono uguali, potresti trovare più semplice il metodo "equals()". Ecco il codice di esempio:
    String string1 = new String("abc");
    String string2 = new String("abc");
    if(string1.equals(string2))
    {
    System.out.println("Le due stringhe testate sono uguali");
    }
    
    • NOTA: eseguendo il confronto utilizzando il seguente codice (string1 == string2) in questo caso verrebbe restituito il valore booleano "false". Questo accade perché l'operatore di confronto "==" esegue il test sui due oggetti "string1" e "string2", che effettivamente rappresentano due istanze diverse della classe "String", e non sul loro contenuto che invece è uguale. Il metodo "equals()", al contrario, esegue il confronto del valore contenuto nei due oggetti indicati cioè le stringhe "abc".

Pubblicità

Avvertenze

  • È bene non comparare due stringhe utilizzando l'operatore di confronto "==", a meno di non sapere esattamente quello si sta facendo e cosa si vuole ottenere. Questa operazione potrebbe non restituire il risultato atteso e quindi, per individuare l'errore e la causa del problema, occorrerebbe passare molto tempo sulla fase di debug, soprattutto nel caso di un programmatore di Java alle prime armi.
  • Confrontare due stringhe che contengono il valore "NULL" utilizzando l'operatore "==" darà come risultato il valore booleano "TRUE". Al contrario, se vengono confrontate utilizzando il metodo "equals()", verrà sollevata un'eccezione che andrà quindi gestita in base alle esigenze.
Pubblicità

wikiHow Correlati

Come

Aprire un File XML

Come

Diventare un Hacker

Come

Inserire gli Spazi in HTML

Come

Hackerare

Come

Compilare un Programma C Utilizzando il Compilatore GNU GCC

Come

Digitare un Trattino

Come

Aprire un File '.Dat'

Come

Convertire un Numero dal Sistema Binario a Quello Decimale

Come

Convertire un Numero dal Sistema Decimale a Quello Binario

Come

Compilare ed Eseguire un Programma Java Utilizzando il Prompt dei Comandi

Come

Creare un File Batch

Come

Danneggiare un File di Proposito Utilizzando Corrupt a File.Net

Come

Imparare un Linguaggio di Programmazione

Come

Aggiungere un Link a un'Immagine
Pubblicità

Informazioni su questo wikiHow

wikiHow è una "wiki"; questo significa che molti dei nostri articoli sono il risultato della collaborazione di più autori. Per creare questo articolo, autori volontari hanno collaborato apportando nel tempo delle modifiche per migliorarlo. Questo articolo è stato visualizzato 8 426 volte
Categorie: Programmazione
Questa pagina è stata letta 8 426 volte.

Hai trovato utile questo articolo?

Pubblicità