반응형
1. == 연산자 (주소 비교)
String a = "hello";
String b = "hello";
String c = new String("hello");
System.out.println(a == b); // true (리터럴 풀에 저장된 동일한 주소)
System.out.println(a == c); // false (new로 만든 건 다른 주소)
• ==은 ‘주소’가 같은지 비교
→ 내용 같아도, 주소 다르면 false
• 절대 문자열 내용 비교에 쓰지 말 것! (초보 실수 포인트)
2. .equals() (내용 비교)
String a = "hello";
String b = new String("hello");
System.out.println(a.equals(b)); // true
• 문자열 내용이 같으면 true
• 대소문자 구분함
• 문자열 비교 기본은 무조건 .equals()
3. .equalsIgnoreCase() (대소문자 무시하고 내용 비교)
String a = "Hello";
String b = "hello";
System.out.println(a.equalsIgnoreCase(b)); // true
• 대소문자 신경 안 쓰고 비교할 때 사용
4. .compareTo() (사전 순 비교)
String a = "apple";
String b = "banana";
System.out.println(a.compareTo(b)); // 음수 (a < b)
System.out.println(b.compareTo(a)); // 양수 (b > a)
System.out.println(a.compareTo("apple")); // 0 (같음)
• 사전 순서 기준으로 비교
• 음수: 왼쪽이 앞
• 0: 같음
• 양수: 왼쪽이 뒤
• 정렬 구현 시 유용
>, < 사용 불가
5. .startsWith() / .endsWith()
String s = "hello world";
System.out.println(s.startsWith("hello")); // true
System.out.println(s.endsWith("world")); // true
• 특정 접두사, 접미사로 시작/끝나는지 확인할 때 사용
6. .contains()
String s = "hello world";
System.out.println(s.contains("lo")); // true
• 부분 문자열이 포함되어 있는지 확인할 때 사용
🛑 주의해야 할 실수
실수 | 이유 |
==로 문자열 비교 | 주소 비교라서 의도한 대로 안 될 수 있음 |
next()로 입력 받은 후 바로 equals() 없이 비교 | ==로 비교하면 실패, 항상 .equals() 사용 |
반응형
'JAVA' 카테고리의 다른 글
[JAVA] Scanner 대신 BufferedReader 사용하기 (0) | 2025.03.24 |
---|---|
[JAVA] next(), nextLine(), nextInt()의 차이점과 주의할 점 (0) | 2025.03.24 |
Java API 총정리 (0) | 2025.03.19 |
Java에서 Maven을 써야 할까? Gradle을 써야 할까? (0) | 2025.03.19 |
Maven이란 무엇인가? (0) | 2025.03.17 |