본문 바로가기
Java/java

자바 lastIndexOf 메서드를 활용한 문자열 역순 검색하기

by SANCODE 2023. 10. 11.

안녕하세요. 오늘은 자바 lastIndexOf 메서드에 대한 내용을 주제로 글을 쓰려고 합니다. 문자열과 리스트에서 역방향으로 검색하는 이 메서드를 자세히 살펴보며, 실제 활용 예제와 함께 다양한 활용법을 알아보겠습니다. 역방향 검색을 수행하는 이 메서드를 잘 이해하면 데이터 처리와 검색 작업을 더 효율적으로 수행할 수 있습니다.



목차


    lastIndexOf 메서드란?

    자바의 lastIndexOf 메서드는 주어진 문자열 또는 요소를 역방향으로 검색하여 해당 문자열 또는 요소가 마지막으로 등장하는 인덱스(위치)를 반환하는 역할을 합니다. 이 메서드는 주로 문자열 또는 리스트에서 특정 요소를 역방향으로 검색하고 해당 요소의 위치를 파악하는 데 사용됩니다.


    특징

    • 검색 대상
      lastIndexOf
      메서드는 주어진 문자열 또는 요소를 검색 대상으로 합니다. 문자열, 문자, 숫자, 객체 등 다양한 유형의 데이터를 대상으로 검색할 수 있습니다.
    • 역방향 검색
      lastIndexOf
      는 문자열 또는 리스트를 뒤에서부터 앞으로 검색합니다. 따라서 해당 문자열 또는 요소가 마지막으로 등장하는 위치를 찾습니다.
    • 반환 값 메서드는 찾은 요소의 위치(인덱스)를 반환합니다. 만약 검색 대상이 발견되지 않으면 -1을 반환합니다.
    • 문자열에서의 활용 주로 문자열에서 특정 문자열 또는 문자의 마지막 등장 위치를 파악할 때 사용됩니다. 예를 들어, 특정 문자열의 파일 확장자를 추출하거나, 주소 문자열에서 마지막 슬래시 뒤의 경로를 추출하는 데 유용합니다.
    • 리스트에서의 활용 리스트에서 특정 요소의 마지막 등장 위치를 파악하거나, 역방향으로 특정 요소를 검색할 때 사용됩니다.

    예를 들어, 다음과 같은 코드에서 lastIndexOf 메서드를 사용하여 문자열에서 특정 문자열의 마지막 등장 위치를 찾을 수 있습니다.

    String text = "This is a sample sentence. This sentence has words.";
    int lastIndex = text.lastIndexOf("sentence");
    System.out.println("마지막 'sentence'의 위치: " + lastIndex);

    이러한 역방향 검색 메서드는 데이터 처리와 검색 작업에서 유용하게 활용됩니다.



    lastIndexOf의 활용 예제


    문자열에서 마지막 공백 위치 찾기

    String text = "Hello, how are you doing?";
    int lastIndex = text.lastIndexOf(" ");
    if (lastIndex != -1) {
        String lastWord = text.substring(lastIndex + 1);
        System.out.println("마지막 단어: " + lastWord);
    } else {
        System.out.println("공백을 찾을 수 없습니다.");
    }

    위의 코드는 문자열에서 마지막 공백의 위치를 찾아 마지막 단어를 추출합니다.


    파일 확장자 추출

    String filename = "document.pdf";
    int lastIndex = filename.lastIndexOf(".");
    if (lastIndex != -1) {
        String extension = filename.substring(lastIndex + 1);
        System.out.println("파일 확장자: " + extension);
    } else {
        System.out.println("파일 확장자를 찾을 수 없습니다.");
    }

    위의 코드는 파일 이름에서 마지막 점(.) 이후의 문자열을 추출하여 파일 확장자를 찾습니다.


    리스트에서 마지막 등장 요소 찾기

    List<String> fruits = Arrays.asList("사과", "바나나", "딸기", "바나나");
    String target = "바나나";
    int lastIndex = fruits.lastIndexOf(target);
    if (lastIndex != -1) {
        System.out.println(target + "의 마지막 위치: " + lastIndex);
    } else {
        System.out.println(target + "을(를) 찾을 수 없습니다.");
    }

    위의 코드는 리스트에서 특정 요소의 마지막 등장 위치를 찾습니다.
    이러한 활용 예제들은 lastIndexOf 메서드를 통해 역방향 검색을 수행하여 데이터 처리와 정보 추출 작업을 간편하게 할 수 있음을 보여줍니다.



    반응형


    lastIndexOf와 indexOf의 비교


    indexOf 메서드

    • indexOf 메서드는 문자열 또는 리스트에서 왼쪽(첫 번째)부터 검색을 시작합니다.
    • 처음 발견된 요소의 인덱스를 반환합니다.
    • 왼쪽에서 오른쪽으로 검색하는 성격을 가지므로 처음 등장하는 요소의 인덱스를 찾습니다.

    lastIndexOf 메서드

    • lastIndexOf 메서드는 문자열 또는 리스트에서 오른쪽(마지막)부터 역순으로 검색을 시작합니다.
    • 마지막으로 발견된 요소의 인덱스를 반환합니다.
    • 오른쪽에서 왼쪽으로 검색하는 성격을 가지므로 마지막으로 등장하는 요소의 인덱스를 찾습니다.

    비교 예제 코드

    String text = "Java is fun, and Java is powerful.";
    String target = "Java";
    
    int indexOfJava = text.indexOf(target); // indexOf는 처음으로 발견된 "Java"의 인덱스를 반환합니다.
    int lastIndexOfJava = text.lastIndexOf(target); // lastIndexOf는 마지막으로 발견된 "Java"의 인덱스를 반환합니다.
    
    System.out.println("indexOf: " + indexOfJava); // 출력: 0
    System.out.println("lastIndexOf: " + lastIndexOfJava); // 출력: 16

    위의 예제에서 indexOf는 왼쪽에서 "Java"를 찾아 처음으로 발견된 위치(인덱스 0)를 반환하고, lastIndexOf는 오른쪽에서 "Java"를 찾아 마지막으로 발견된 위치(인덱스 16)를 반환합니다. 따라서, 검색을 왼쪽에서 오른쪽으로 하는지 역순으로 하는지에 따라 두 메서드는 다른 위치의 요소를 반환합니다. 이를 통해 필요에 따라 두 메서드 중 적절한 것을 선택하여 사용할 수 있습니다.



    마무리

    오늘은 자바 lastIndexOf 메서드에 대한 내용을 주제로 정리해보았습니다. 이 메서드는 문자열이나 리스트에서 역순으로 검색하여 마지막으로 발견된 요소의 인덱스를 반환하는 유용한 기능을 가지고 있습니다. 이를 통해 여러분은 문자열 또는 리스트 내에서 특정 요소의 마지막 위치를 파악하고 다양한 작업에 활용할 수 있습니다. 감사합니다.





    반응형