문자열 위치 찾는 방법
이번 포스팅은 문자열에서 특정 문자열의 위치를 찾기 위해 다음 세 가지 방법을 소개합니다.
세 가지 방법
- indexOf(): 문자열의 처음 위치에서 특정 문자열의 위치를 찾습니다.
- lastIndexOf(): 문자열의 마지막 위치에서 특정 문자열의 위치를 찾습니다.
- 정규식 사용: 문자열에서 특정 문자열이 두 개 이상인 경우 문자열의 모든 위치를 찾습니다.
문자열 처음 위치에서 찾는 방법
문자열의 처음 위치에서 특정 문자열의 위치를 찾기 위해 indexOf() 메서드를 사용합니다.
indexOf()
- 문자열의 처음 위치에서 특정 문자열을 검색 후 위치(index)를 반환합니다.
- 문자열에서 특정 문자열이 두 개 이상인 경우 시작 위치와 가장 가까운 위치를 반환합니다.
- 특정 문자열이 존재하지 않는 경우 -1을 반환합니다.
다음 예제는 문자열에서 "Java"라는 문자열의 위치를 탐색합니다.
public static void main(String args[]) {
String strValue = "Subject: Java, JavaScript, React, Node.JS";
int findIndex = strValue.indexOf("Java");
System.out.println("문자열 \"Java\"의 위치: " + findIndex);
}
[실행 결과]
문자열 "Java"의 위치: 9
문자열을 특정 위치에서 시작하여 검색하고 싶은 경우 indexOf() 메서드의 두 번째 매개변수로 특정 위치를 전달합니다.
다음 예제는 문자열 10번째 인덱스부터 "Java"라는 문자열의 위치를 찾습니다.
public static void main(String args[]) {
String strValue = "Subject: Java, JavaScript, React, Node.JS";
int findIndex = strValue.indexOf("Java", 10);
System.out.println("문자열 \"Java\"의 위치: " + findIndex);
}
[실행 결과]
문자열 "Java"의 위치: 15
문자열 마지막 위치에서 찾는 방법
문자열의 마지막 위치에서 특정 문자열의 위치를 찾기 위해 lastIndexOf() 메서드를 사용합니다.
lastIndexOf()
- 문자열의 마지막 위치에서 특정 문자열을 검색 후 위치(index)를 반환합니다.
- 문자열에서 특정 문자열이 두 개 이상인 경우 마지막 위치와 가장 가까운 위치를 반환합니다.
- 특정 문자열이 존재하지 않는 경우 -1을 반환합니다.
다음 예제는 문자열에서 "Java"라는 문자열의 위치를 마지막 위치에서부터 탐색합니다.
public static void main(String args[]) {
String strValue = "Subject: Java, JavaScript, React, Node.JS";
int findIndex = strValue.lastIndexOf("Java");
System.out.println("문자열 \"Java\"의 위치: " + findIndex);
}
[실행 결과]
문자열 "Java"의 위치: 15
문자열을 특정 위치에서 반대방향으로 검색하고 싶은 경우 lastIndexOf() 메서드의 두 번째 매개변수에 특정 위치를 전달합니다.
다음 예제는 문자열 14번째 인덱스부터 "Java"라는 문자열을 반대방향으로 탐색합니다.
public static void main(String args[]) {
String strValue = "Subject: Java, JavaScript, React, Node.JS";
int findIndex = strValue.lastIndexOf("Java", 14);
System.out.println("문자열 \"Java\"의 위치: " + findIndex);
}
[실행 결과]
문자열 "Java"의 위치: 9
특정 문자열이 여러 개인 경우
문자열에서 특정 문자열이 여러 개인 경우 모든 위치를 알아내야 할 수도 있습니다.
특정 문자열의 모든 위치를 찾기 위해 다음 두 가지 방법을 사용합니다.
두 가지 방법
- 정규식
- 반복문과 indexOf() 메서드
정규식 활용
다음 예제는 Matcher, Pattern 클래스를 활용하여 특정 문자열이 포함된 모든 위치를 콘솔에 출력합니다.
public static void main(String args[]) {
String strValue = "Subject: Java, JavaScript, React, Node.JS";
Matcher matcher = Pattern.compile("Java").matcher(strValue);
while (matcher.find()) {
System.out.println("문자열 \"Java\"의 위치: " + matcher.start());
}
}
[실행 결과]
문자열 "Java"의 위치: 9
문자열 "Java"의 위치: 15
반복문 활용
다음 예제는 while문과 indexOf() 메서드를 사용하여 특정 문자열이 포함된 모든 위치를 콘솔에 출력합니다.
public static void main(String args[]) {
String strValue = "Subject: Java, JavaScript, React, Node.JS";
int findIndex = strValue.indexOf("Java");
while (findIndex >= 0) {
System.out.println("문자열 \"Java\"의 위치: " + findIndex);
findIndex = strValue.indexOf("Java", findIndex + 1);
}
}
[실행 결과]
문자열 "Java"의 위치: 9
문자열 "Java"의 위치: 15
'Java > 문자열' 카테고리의 다른 글
[Java]특정 위치의 문자를 유니코드로 가져오는 방법 (0) | 2022.08.17 |
---|---|
[Java]문자열에서 특수 문자 제거하는 방법 (0) | 2022.08.16 |
[Java]문자열 연결하는 방법 (0) | 2022.08.13 |
[Java]문자열 분리하는 방법 (0) | 2022.08.11 |
[Java]StringBuilder 비어 있는지 확인하는 방법 (0) | 2022.06.23 |
댓글