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). Restituiscetruese le stringhe hanno gli stessi caratteri nello stesso ordine,falsealtrimenti. Questo metodo distingue tra maiuscole e minuscole.
equalsIgnoreCase(String other): Simile aequals, ma ignora le maiuscole e le minuscole. Restituiscetruese le stringhe hanno gli stessi caratteri, indipendentemente da maiuscole o minuscole, altrimentifalse.
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 acompareTo, 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); // 0Sfida
FacileCrea un metodo chiamato compareStrings che accetta due stringhe come input ed esegue i seguenti confronti:
- Verifica se le due stringhe sono uguali usando
equalse stampa il risultato. - Verifica se le due stringhe sono uguali (ignorando le maiuscole e minuscole) usando
equalsIgnoreCasee stampa il risultato. - Confronta le due stringhe usando
compareToe stampa il risultato. - Confronta le due stringhe (ignorando le maiuscole e minuscole) usando
compareToIgnoreCasee 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: 0Provalo 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);
}
}Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Fondamenti
4Operatori - Parte 1
Operatori aritmeticiOperatore moduloIncremento/decrementoIncremento/decremento postfissoAbbreviazioni aritmeticheOperatori di confrontoConfronto tra stringhe7I/O di base
Metodi di System.outFormattare l'outputClasse ScannerRipasso - Fino a 120Ripasso - Vero o falso10Metodi (Funzioni)
Dichiarare i metodiParametri dei metodiTipi di ritornoSovraccarico dei metodiRipasso - Funzione SigmaRipasso - Funzione di validazioneMetodi void13Operazioni sulle stringhe
Metodi delle stringhe Parte 1Metodi delle stringhe Parte 2Formattazione delle stringheConfronto tra stringhe5Operatori Parte 2
Operatori logici Parte 1Operatori logici Parte 2Riepilogo - Logica sempliceOperatori logici Parte 3Operatori logici Parte 43Variabili Parte 2
CostantiConvenzioni di denominazioneRipasso - Inizializzare le variabiliConversione dei tipi Parte 1Conversione dei tipi Parte 26Decisioni
Istruzione ifIf - ElseIstruzione switchOperatore ternarioRiepilogo - If ElseIf - Else annidatiEsercitati da solo: Compilatore Java online