[Java] indexOf, contains 메소드 비교 (특정 문자 / 문자열 포함 여부 확인)

hyeonn·2024년 6월 30일

JAVA

목록 보기
5/12

개요

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
  1. indexOf
  • 찾는 문자/문자열이 포함 O: 위치한 첫번째 인덱스값
  • 찾는 문자/문자열이 포함 X: -1

메소드 별 사용 목적과 결과값이 조금씩 다르지만

사실 contains 메소드의 구현부를 확인해보면 indexOf 메소드를 호출하여 포함 여부를 true/false 값으로 반환하는 것이기 때문에 동작 원리는 거의 같다고 볼 수 있다.

그렇기 때문에 단순히 특정 문자열이 포함되어 있는지 확인하는 경우엔 contains 메소드를 사용해서 코드 가독성을 높이고,

포함된 위치까지 확인해야 할 때는 indexOf를 사용하면 될 것 같다.

profile
6년차 서버 개발자입니다!

0개의 댓글