본문 바로가기
Programming/JAVA

[Java] 특정 문자 위치 찾기 - indexOf, lastIndexOf

by 이브(Eve) 2025. 1. 24.

자바 문자열에서 특정 문자의 위치를 찾는 방법을 알아보자 !!


Contents

문자열에서 특정 문자열의 첫 번째 위치 찾기 -  indexOf

문자열에서 특정 문자열의 마지막 위치 찾기 - lastIndexOf


1. 문자열에서 특정 문자열의 첫 번째 위치 찾기 - indexOf

indexOf 메서드는 인수로 주어진 문자열이 처음 나오는 곳의 인덱스 값을 반환한다.

int indexOf(String str)
  • 반환 값 : str이 처음 나오는 곳의 인덱스 값
  • 만약 문자열이 존재하지 않을 경우 -1을 반환한다.

다음과 같이 시작 위치도 지정 가능하다.

int indexOf(String str, int fromIndex)

fromIndex를 지정하면 해당 인덱스의 위치부터 검색을 시작한다.

 

- 예제 코드

public class Main {
    public static void main(String[] args) {
        String str = "Java Programming";

        // 특정 문자열의 첫 번째 위치 찾기
        System.out.println(str.indexOf("a")); // 1 (첫 번째 'a'의 위치)
        System.out.println(str.indexOf("Programming")); // 5

        // 검색 시작 위치 지정
        System.out.println(str.indexOf("a", 2)); // 3 (2번 인덱스 이후 첫 번째 'a')
        
        // 없는 문자열 검색
        System.out.println(str.indexOf("Python")); // -1
    }
}

2. 문자열에서 특정 문자열의 마지막 위치 찾기 - lastIndexOf

lastIndexOf 메서드는 인수로 주어진 문자열이 마지막으로 나오는 곳의 인덱스 값을 반환한다.

int lastIndexOf(String str)
  • 반환 값 : str이 마지막으로 나오는 곳의 인덱스 값
  • 만약 문자열이 존재하지 않을 경우 -1을 반환한다.

indexOf와 마찬가지로 검색 시작 위치를 지정할 수 있다. 이때 지정한 위치부터 역방향으로 검색한다는 것에 유의해야 한다.

int lastIndexOf(String str, int fromIndex)

 

- 예제 코드

public class Main {
    public static void main(String[] args) {
        String str = "Java Programming";

        // 특정 문자열의 마지막 위치 찾기
        System.out.println(str.lastIndexOf("a")); // 10 (마지막 'a'의 위치)
        System.out.println(str.lastIndexOf("Java")); // 0

        // 검색 시작 위치 지정
        // (12번 인덱스(m)부터 역방향으로 찾기 -> 0번부터 12번 인덱스 사이에서 마지막 a는 10번 인덱스에 있다.
        System.out.println(str.lastIndexOf("a", 12)); // 10 
             
        // 없는 문자열 검색
        System.out.println(str.lastIndexOf("Python")); // -1
    }
}