개요
String형 변수에 특정 문자/문자열이 포함되어 있는지 확인할 때는 indexOf 또는 contains 메소드를 사용한다.
String str1="a@123@b";
// indexOf
System.out.println(str1.indexOf("@123@")>-1);
System.out.println(str1.indexOf("@123@"));
// contains
System.out.println(str1.contains("@123@"));
contains 와 indexOf 비교
contains 메소드는 특정 문자/문자열이 포함되어 있는지 여부를 확인하는 메소드라면,
indexOf 메소드는 찾는 문자/문자열의 위치를 확인할 수 있는 메소드이다.
각각의 결과값 아래와 같다.
1. contains
- 찾는 문자/문자열이 포함 O: true
- 찾는 문자/문자열이 포함 X: false
2. indexOf
- 찾는 문자/문자열이 포함 O: 위치한 첫번째 인덱스값
- 찾는 문자/문자열이 포함 X: -1
메소드 별 사용 목적과 결과값이 조금씩 다르지만
사실 contains 메소드의 구현부를 확인해보면 indexOf 메소드를 호출하여 포함 여부를 true/false 값으로 반환하는 것이기 때문에 동작 원리는 거의 같다고 볼 수 있다.
그렇기 때문에 단순히 특정 문자열이 포함되어 있는지 확인하는 경우엔 contains 메소드를 사용해서 코드 가독성을 높이고,
포함된 위치까지 확인해야 할 때는 indexOf를 사용하면 될 것 같다.
'Study > Java' 카테고리의 다른 글
[Java] CGI, Servlet 개념과 Servlet의 동작방식 (0) | 2024.01.05 |
---|---|
[Java] Entity, DTO, VO 개념과 차이 (0) | 2023.10.31 |
[Java] 객체 지향 설계의 5가지 원칙 (SOLID) (0) | 2023.10.02 |
[Java] OOP와 4가지 특징 (0) | 2023.10.02 |
[JAVA] 대용량 엑셀 업로드 기능 구현 (POI, SAX Parser) (0) | 2023.07.16 |