티스토리 뷰

 

indexOf 함수는 문자열 내에서 지정된 문자나 문자열이 처음 발견되는 인덱스를 반환한다. 만약 찾지 못했을 경우 "-1"을 반환한다. 시작위치는 생략이 가능하며 생략할 경우 0번째 즉 처음부터 찾는다.

대부분의 개발자들이 알고있는 사실이고 자주 사용하는 함수이기도 하다. 하지만 indexOf 함수 사용시 시작 위치를 지정해서 사용하기를 권장한다. 시작 위치를 지정해서 사용하면 좀 더 명확해진다.

  • indexOf(int ch, int fromIndex)
  • indexOf(String str, int fromIndex)

Noncompliant Code Example

// a new String is going to be created by "substring"
str.substring(beginIndex).indexOf(char1); // Noncompliant


String name = "ismael";

if (name.indexOf("ae") > 2) { // Noncompliant
  // ...
}

위 코드는 잘 동작하지만 substring 메서드를 호출할 때마다 새 문자열을 반환한다. 이런 코드가 루프에서 반복적으로 수행된다면 성능에 문제가 발생할 수 있다. 성능 문제를 피하려면 indexOf에 추가 매개 변수를 이용하여 시작 오프셋을 지정해야 한다.

 

Compliant Solution

str.indexOf(char1, beginIndex);


String name = "ismael";

if (name.indexOf("ae", 2) > -1) {
  // ...
}

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함