문자열에 사용할 수 있는 indexOf()

백준 알고리즘 문제를 풀다가 알게되어 정리해본다.

String name = "devandy"; 에서 알파벳 a가 문자열 name에서 몇번째 인덱스에 있는가?

이 질문에 대해 그냥 풀어보면 이렇게 작성해볼 수 있을 것 같다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class devAndy {
int searchIndexOf(String str, char c){
String[] arr = str.split("");
int indesx = -1;
for(int i=0; i<arr.length; i++){
if(arr[i].equals(String.valueOf(c))){
index = i;
}
}
return index;
}

public static void main(String[] args){
devandy d = new devandy();
String name = "devandy";
char c = 'a';
System.out.println(d.searchIndexOf(name, c));
}
}

대략 20줄 내외의 코드가 필요하다. 인덱스를 찾는 메서드만 하더라도 딱 10줄이다. 그런데 indexOf() 를 사용하면 이렇게 길게 작성할 필요가 없어진다.

1
2
3
4
5
6
7
class devandy {
public static void main(String[] args){
String name = "devandy";
char c = 'a';
System.out.println(name.indexOf(c));
}
}

char형 뿐만 아니라 String 데이터도 찾아준다.


공식문서를 보면, 문자열 데이터에서 parameter로 받은 문자(specified character)가 첫번째로 등장하는 인덱스를 반환하는 함수라는 설명이다.