반응형
이번 글에서는 문자열 안에 특정 문자열이 있는지 확인하는 두 가지 방법,
indexOf()와 contains()의 차이를 알아봅니다.
두 메서드는 비슷해 보이지만, 사용 목적과 반환 값이 다릅니다.
📌 예제 코드
public class IndexOfContainsExample {
public static void main(String[] args) {
String str = "자바 프로그래밍";
int x = str.indexOf("프로그래밍");
System.out.println(x);
String str2 = str.substring(x);
x = str2.indexOf("자바");
if (x != -1)
System.out.println("자바와 관련된 책이군요.");
else
System.out.println("자바와 관련 없는 책이군요.");
boolean bool = str.contains("자바");
if (bool)
System.out.println("자바와 관련된 책이군요.");
else
System.out.println("자바와 관련 없는 책이군요.");
}
}
💬 코드 설명
- str.indexOf("프로그래밍")
→ 문자열 "자바 프로그래밍"에서 "프로그래밍"이 시작되는 인덱스(3)를 반환
→ 이 인덱스를 기준으로 substring해서 "프로그래밍"만 추출 - str2.indexOf("자바")
→ "프로그래밍"에서 "자바"를 찾는데 없음 → -1 반환 - str.contains("자바")
→ "자바 프로그래밍"에 "자바"라는 단어가 포함되어 있는지 검사 → true 반환
💻 실행 결과
3
자바와 관련 없는 책이군요.
자바와 관련된 책이군요.
📌 간단 정리
메서드 | 용도 | 반환값 | 예시 결과 |
indexOf("문자열") | 특정 문자열의 시작 위치 반환 | 숫자(인덱스), 없으면 -1 | "자바 프로그래밍".indexOf("자바") → 0 |
contains("문자열") | 포함 여부 확인 | true / false | "자바 프로그래밍".contains("자바") → true |
💡 포인트 정리
- indexOf()는 문자열이 시작되는 위치(인덱스)를 반환, 없으면 -1
- contains()는 문자열 포함 여부만 확인 → true / false
- 단순히 "이 단어가 들어있는가?"를 확인할 때는 contains()가 더 직관적
- 위치가 필요하면 indexOf()를 사용해야 함
✅ 추가적으로!! equals() 와 contains()의 차이
역할 | 문자열 전체가 같은지 비교 | 부분 문자열이 포함되어 있는지 확인 |
반환값 | true or false | true or false |
대상 | 전체 문자열 | 부분 문자열 |
예시 | str.equals("apple") | str.contains("app") |
대소문자 구분 | 구분함 | 구분함 |
'프로그래밍 > JAVA' 카테고리의 다른 글
31. 배열 재생성 - new int[] { ... } (0) | 2025.04.22 |
---|---|
30. 배열 선언과 값 목록 초기화 (0) | 2025.04.22 |
29. 문자열 나누기 - split() 메서드 (0) | 2025.04.22 |
27. 문자열 자르기 - substring() 메서드 (0) | 2025.04.22 |
26. 문자열 바꾸기 - replace() 메서드 (0) | 2025.04.22 |
25. 문자열 길이 검사 - length() 메서드 (0) | 2025.04.22 |