자바에는 문자열을 찾을 때 사용하는 함수가 있다.
첫번째, indexOf.
문자열에서 검색하고자 하는 문자의 위치 인덱스를 return한다.
ex) System.out.println("Hello World".indexOf("W"));
return 6
문자열에서 찾고자 하는 문자가 존재하지 않으면 -1을 return한다
두번째, contains.
문자열에서 검색하고자 하는 문자나 문자열의 위치가 포함되어 있는지 boolean형태로(true/false) return한다.
ex) System.out.println("Hello World"("Hello"));
return true
문자열에서 찾고자 하는 문자나 문자열이 존재하지 않으면 false를 return한다.
세번째, matches
문자열에서 검색하고자 하는 문자열을 정규식을 이용하여 검색한다. return은 boolean형태다.
ex) System.out.println("1234".matches(".*[0-9].*"));
return true;
문자열에서 찾고자 하는 문자가 존재하지 않으면 false를 return한다.
그렇다면 이 셋 중에서 어떤 함수를 쓰는게 제일 효율적일까?
문자열 찾기 함수를 이용해서 코드를 작성하다보면 이런 경우를 마주칠 때가 있다.
indexOf()를 contains()로 교체할 수 있다는 알림문을 띄운다.
왜 이런 알림문을 띄우는지 의문이 생겼다.
저 알림문에 상세 내용을 펼쳐 보면
대충 자바 5 이상부터는 indexOf()대신 contains()를 사용하길 권장하고 있다고 한다.
'JAVA > Good Coding' 카테고리의 다른 글
[Java] 스프링 MVC 패턴 프로젝트 코드 개선 (0) | 2022.04.04 |
---|---|
[JAVA] equals() 함수 사용법과 주의사항 (0) | 2022.03.31 |