String Comparison
Coddy Java 여정의 기초 섹션에 포함된 레슨 — 73개 중 70번째.
Java에서 문자열을 비교하는 것은 정수나 문자 같은 기본 데이터 타입을 비교하는 것만큼 간단하지 않습니다. 문자열을 동등성으로 비교하기 위해 == 연산자를 사용할 수 없습니다. 왜냐하면 문자열은 객체이기 때문에, ==은 내용이 아닌 메모리 주소를 비교하기 때문입니다. 대신, 문자열 내 실제 문자를 비교하기 위해 String 클래스에서 제공하는 특정 메서드를 사용해야 합니다.
문자열 비교를 위한 주요 방법은 다음과 같습니다:
equals(Object other): 문자열을 다른 객체(보통 다른 문자열)와 비교합니다. 문자열이 같은 순서로 같은 문자를 가진 경우true를 반환하고, 그렇지 않으면false를 반환합니다. 이 메서드는 대소문자를 구분합니다.
equalsIgnoreCase(String other):equals와 유사하지만 대소문자를 무시합니다. 문자열이 대소문자에 관계없이 동일한 문자를 가진 경우true를 반환하며, 그렇지 않으면false를 반환합니다.
compareTo(String other): 두 문자열을 유니코드 값에 기반한 사전식으로 비교합니다. 문자열이 같으면 0을 반환하고, 첫 번째 문자열이 두 번째보다 작으면 음수를, 첫 번째 문자열이 두 번째보다 크면 양수를 반환합니다. 이 메서드는 대소문자를 구분합니다.
compareToIgnoreCase(String other):compareTo와 유사하지만, 대소문자를 무시합니다.
다음은 예시입니다:
String str1 = "hello";
String str2 = "hello";
String str3 = "HELLO";
String str4 = "world";
boolean eq1 = str1.equals(str2); // 참
boolean eq2 = str1.equals(str3); // 거짓
boolean eq3 = str1.equalsIgnoreCase(str3); // 참
int cmp1 = str1.compareTo(str2); // 0
int cmp2 = str1.compareTo(str4); // 음수 값
int cmp3 = str4.compareTo(str1); // 양수 값
int cmp4 = str1.compareToIgnoreCase(str3); // 0챌린지
쉬움두 개의 문자열을 입력으로 받아 다음 비교를 수행하는 compareStrings라는 이름의 메서드를 생성하세요:
equals를 사용하여 두 문자열이 같은지 확인하고 결과를 출력합니다.equalsIgnoreCase를 사용하여 두 문자열이 대소문자를 무시하고 같은지 확인하고 결과를 출력합니다.compareTo를 사용하여 두 문자열을 비교하고 결과를 출력합니다.compareToIgnoreCase를 사용하여 두 문자열을 대소문자를 무시하고 비교하고 결과를 출력합니다.
입력 문자열 HELLO와 hello에 대한 예제 출력:
HELLO equals hello: false
HELLO equalsIgnoreCase hello: true
HELLO compareTo hello: -32
HELLO compareToIgnoreCase hello: 0치트 시트
Java에서 문자열을 비교할 때는 메모리 주소를 비교하는 == 연산자가 아닌 특정 메서드를 사용하세요:
equals(Object other): 대소문자를 구분하는 동등성 비교equalsIgnoreCase(String other): 대소문자를 구분하지 않는 동등성 비교compareTo(String other): 대소문자를 구분하는 사전식 비교 (동등하면 0, 첫 번째가 두 번째보다 작으면 음수, 첫 번째가 두 번째보다 크면 양수 반환)compareToIgnoreCase(String other): 대소문자를 구분하지 않는 사전식 비교
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); // 0직접 해보기
import java.util.Scanner;
public class Main {
public static void compareStrings(String str1, String str2) {
// 여기에 코드를 작성하세요
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String str1 = scanner.nextLine();
String str2 = scanner.nextLine();
compareStrings(str1, str2);
}
}이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
기초의 모든 레슨
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