Menu
Coddy logo textTech

Confronto tra stringhe

Fa parte della sezione Fondamenti del percorso Java di Coddy. Lezione 70 di 73.

In Java, confrontare le stringhe non è semplice come confrontare tipi di dati primitivi come interi o caratteri. Non puoi usare l'operatore == per confrontare le stringhe per verificarne l'uguaglianza, perché le stringhe sono oggetti e == confronterebbe i loro indirizzi di memoria, non il loro contenuto. Devi invece usare metodi specifici forniti dalla classe String per confrontare i caratteri effettivi contenuti nelle stringhe.

Ecco i metodi principali per confrontare le stringhe:

  • equals(Object other): Confronta la stringa con un altro oggetto (di solito un'altra stringa). Restituisce true se le stringhe hanno gli stessi caratteri nello stesso ordine, false altrimenti. Questo metodo distingue tra maiuscole e minuscole.
  • equalsIgnoreCase(String other): Simile a equals, ma ignora le maiuscole e le minuscole. Restituisce true se le stringhe hanno gli stessi caratteri, indipendentemente da maiuscole o minuscole, altrimenti false.
  • compareTo(String other): Confronta due stringhe lessicograficamente (in base ai loro valori Unicode). Restituisce 0 se le stringhe sono uguali, un numero negativo se la prima stringa è minore della seconda e un numero positivo se la prima stringa è maggiore della seconda. Questo metodo distingue tra maiuscole e minuscole.
  • compareToIgnoreCase(String other): Simile a compareTo, ma ignora le maiuscole e le minuscole.

Ecco un esempio:

String str1 = "hello";
String str2 = "hello";
String str3 = "HELLO";
String str4 = "world";

boolean eq1 = str1.equals(str2); // true
boolean eq2 = str1.equals(str3); // false
boolean eq3 = str1.equalsIgnoreCase(str3); // true

int cmp1 = str1.compareTo(str2); // 0
int cmp2 = str1.compareTo(str4); // valore negativo
int cmp3 = str4.compareTo(str1); // valore positivo
int cmp4 = str1.compareToIgnoreCase(str3); // 0
challenge icon

Sfida

Facile

Crea un metodo chiamato compareStrings che accetta due stringhe come input ed esegue i seguenti confronti:

  1. Verifica se le due stringhe sono uguali usando equals e stampa il risultato.
  2. Verifica se le due stringhe sono uguali (ignorando le maiuscole e minuscole) usando equalsIgnoreCase e stampa il risultato.
  3. Confronta le due stringhe usando compareTo e stampa il risultato.
  4. Confronta le due stringhe (ignorando le maiuscole e minuscole) usando compareToIgnoreCase e stampa il risultato.

Output di esempio per le stringhe di input HELLO e hello:

HELLO equals hello: false
HELLO equalsIgnoreCase hello: true
HELLO compareTo hello: -32
HELLO compareToIgnoreCase hello: 0

Provalo tu

import java.util.Scanner;

public class Main {
    public static void compareStrings(String str1, String str2) {
        // Scrivi il tuo codice qui
    }

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String str1 = scanner.nextLine();
        String str2 = scanner.nextLine();
        compareStrings(str1, str2);
    }
}
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Fondamenti

Esercitati da solo: Compilatore Java online