Java에서 문자열을 검색하고 싶은 경우가 있습니다.
이러한 경우에 사용할 수 있는 메서드로 indexOf가 있습니다.
indexOf메서드는 String, StringBuffer, List안에 특정 문자열이 포함됐는지 확인이 가능합니다.
만약 특정 문자열이 포함됐다면 그 요소의 index번호를 반환합니다.
문자열을 찾지 못한 경우에는 -1을 반환합니다.
작성 방법과 샘플을 보면서 사용방법을 확인해보겠습니다.
String indexOf
String에서 문자열을 검색하고 싶을 때 indexOf를 작성하는 방법을 보겠습니다.
대상문자열.indexOf(검색하고 싶은 문자열, 검색 시작 위치 인덱스 번호(생략 가능))
첫 번째 파라미터로는 대상 문자열에서 검색하고 싶은 문자열을 지정합니다.
두 번째 파라미터로는 검색 시작 위치를 지정합니다.
두 전째 파라미터는 생략이 가능하며, 생략한 경우에는 대상 문자열 처음부터 검색을 시작합니다.
샘플을 보면서 사용방법을 확인해보겠습니다.
public class Main {
public static void main(String[] args) {
String str1 = "appleorangemelon";
String str2 = "orange";
int result = str1.indexOf(str2);
if (result != -1) {
System.out.println(str2 + " 검색위치 :" + result);
} else {
System.out.println(str2 + "검색 결과 없음. 반환값 : "+ result);
}
System.out.println("--------------------------");
str2 = "banana";
result = str1.indexOf(str2);
if (result != -1) {
System.out.println(str2 + " 검색위치 :" + result);
} else {
System.out.println(str2 + "검색 결과 없음. 반환값 : "+ result);
}
}
}
결과
orange 검색위치 :5
--------------------------
banana검색 결과 없음. 반환값 : -1
대상 문자열에서 검색 문자열을 찾은 경우에는 검색 문자열이 시작하는 인덱스 위치를 반환합니다.
참고로 인덱스는 0부터 시작을 합니다.
그리고 대상 문자열에 검색 문자열이 존재하지 않는 경우에는 -1을 반환합니다.
List indexOf
이번에는 List에서 문자열을 검색하는 방법을 확인해보겠습니다.
대상리스트.indexOf(검색하고 싶은 문자열, 검색 시작 위치 인덱스 번호(생략 가능))
첫 번째 파라미터로는 대상 리스트 검색하고 싶은 문자열을 지정합니다.
두 번째 파라미터로는 검색 시작 위치를 지정합니다.
두 전째 파라미터는 생략이 가능하며, 생략한 경우에는 대상 리스트 처음부터 검색을 시작합니다.
샘플을 보면서 사용방법을 확인해보겠습니다.
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class Main {
public static void main(String[] args) {
List list = new ArrayList<>(Arrays.asList("o", "r", "a", "n", "g", "e"));
String str = "a";
int index = list.indexOf(str);
System.out.println("인덱스 = " + index);
System.out.println("--------------------------");
str = "t";
index = list.indexOf(str);
System.out.println("인덱스 = " + index);
}
}
결과
인덱스 = 2
--------------------------
인덱스 = -1
대상 리스트에서 검색 문자열을 찾은 경우에는 검색 문자열이 시작하는 인덱스 위치를 반환합니다.
List도 String과 동일하게 인덱스는 0부터 시작을 합니다.
그리고 대상 리스트에 검색 문자열이 존재하지 않는 경우에는 -1을 반환합니다.
String, StringBuffer, List에서 문자열 위치를 검색해주는 indexOf 함수 사용 방법에 대해 살펴봤습니다.
사용방법은 String형이나 List형이나 차이가 없었습니다.
반환값 또한 차이가 없었습니다.
댓글