String Comparison
Parte de la sección Fundamentos del Journey de Java de Coddy — lección 70 de 73.
En Java, comparar cadenas no es tan directo como comparar tipos de datos primitivos como enteros o caracteres. No puedes usar el operador == para comparar cadenas en busca de igualdad porque las cadenas son objetos, y == compararía sus direcciones de memoria, no su contenido. En su lugar, necesitas usar métodos específicos proporcionados por la clase String para comparar los caracteres reales dentro de las cadenas.
Aquí están los métodos principales para la comparación de cadenas:
equals(Object other): Compara la cadena con otro objeto (generalmente otra cadena). Devuelvetruesi las cadenas tienen los mismos caracteres en el mismo orden,falsede lo contrario. Este método es sensible a mayúsculas y minúsculas.
equalsIgnoreCase(String other): Similar aequals, pero ignora el caso. Devuelvetruesi las cadenas tienen los mismos caracteres, independientemente de su caso,falseen caso contrario.
compareTo(String other): Compara dos cadenas lexicográficamente (basado en sus valores Unicode). Devuelve 0 si las cadenas son iguales, un número negativo si la primera cadena es menor que la segunda, y un número positivo si la primera cadena es mayor que la segunda. Este método es sensible a mayúsculas y minúsculas.
compareToIgnoreCase(String other): Similar acompareTo, pero ignora el caso.
Aquí hay un ejemplo:
String str1 = "hello";
String str2 = "hello";
String str3 = "HELLO";
String str4 = "world";
boolean eq1 = str1.equals(str2); // verdadero
boolean eq2 = str1.equals(str3); // falso
boolean eq3 = str1.equalsIgnoreCase(str3); // verdadero
int cmp1 = str1.compareTo(str2); // 0
int cmp2 = str1.compareTo(str4); // valor negativo
int cmp3 = str4.compareTo(str1); // valor positivo
int cmp4 = str1.compareToIgnoreCase(str3); // 0Desafío
FácilCrea un método llamado compareStrings que tome dos cadenas como entrada y realice las siguientes comparaciones:
- Verifica si las dos cadenas son iguales usando
equalse imprime el resultado. - Verifica si las dos cadenas son iguales (ignorando mayúsculas y minúsculas) usando
equalsIgnoreCasee imprime el resultado. - Compara las dos cadenas usando
compareToe imprime el resultado. - Compara las dos cadenas (ignorando mayúsculas y minúsculas) usando
compareToIgnoreCasee imprime el resultado.
Salida de ejemplo para las cadenas de entrada HELLO y hello:
HELLO equals hello: false
HELLO equalsIgnoreCase hello: true
HELLO compareTo hello: -32
HELLO compareToIgnoreCase hello: 0Hoja de referencia
En Java, utiliza métodos específicos para comparar cadenas, no el operador == que compara direcciones de memoria:
equals(Object other): Comparación de igualdad sensible a mayúsculas y minúsculasequalsIgnoreCase(String other): Comparación de igualdad insensible a mayúsculas y minúsculascompareTo(String other): Comparación lexicográfica sensible a mayúsculas y minúsculas (devuelve 0 si son iguales, negativo si la primera < segunda, positivo si la primera > segunda)compareToIgnoreCase(String other): Comparación lexicográfica insensible a mayúsculas y minúsculas
String str1 = "hello";
String str2 = "HELLO";
boolean eq1 = str1.equals(str2); // false
boolean eq2 = str1.equalsIgnoreCase(str2); // true
int cmp1 = str1.compareTo(str2); // positive value
int cmp2 = str1.compareToIgnoreCase(str2); // 0Pruébalo tú mismo
import java.util.Scanner;
public class Main {
public static void compareStrings(String str1, String str2) {
// Escribe tu código aquí
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String str1 = scanner.nextLine();
String str2 = scanner.nextLine();
compareStrings(str1, str2);
}
}Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Fundamentos
4Operators Part 1
Arithmetic OperatorsModulo OperatorIncrement/DecrementPost Increment/DecrementArithmetic ShortcutsComparison OperatorsString Comparison5Operators Part 2
Logical Operators Part 1Logical Operators Part 2Recap - Simple LogicLogical Operators Part 3Logical Operators Part 43Variables Part 2
ConstantsNaming ConventionsRecap - Initialize VariablesType Casting Part 1Type Casting Part 26Decision Making
If StatementIf - ElseSwitch StatementTernary OperatorRecap - If ElseNested If - Else