본문 바로가기
Java/java

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

by 노마드 산코디 2023. 10. 11.
728x90

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

 

 

 


1. 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);


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








2. lastIndexOf의 활용 예제



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

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("공백을 찾을 수 없습니다.");
}


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



2. 파일 확장자 추출

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("파일 확장자를 찾을 수 없습니다.");
}


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




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

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 메서드를 통해 역방향 검색을 수행하여 데이터 처리와 정보 추출 작업을 간편하게 할 수 있음을 보여줍니다.








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

감사합니다.

 

 

 

728x90
반응형