본문 바로가기
java/개념&문법

JAVA String.lastIndexOf()로 2번째 lastIndex를 얻고 싶을 때??

by yolo-oriented 2023. 2. 14.

참고 : https://www.scaler.com/topics/lastindexof-in-java/

정답은 영어로 구글링 하는 것에 있었다..

    int lastIndexOf(String str, int fromIndex)

lastIndexOf() 메서드는 위의 형태로 사용하고 결과로 index값을 반환한다.

2번째 파라미터는 선언하면 그 인덱스에서 시작하여 마지막 index를 찾는 것으로 알려져 있다.

public class LastIndex_test {
      public static void main(String[] args) {
          /*2번째 lastIndex얻기*/
          String imgURL = "https://shopping-phinf.pstatic.net/main_3246668/32466681076.20230207163634.jpg";
          String wanted = imgURL.substring(imgURL.lastIndexOf(".",imgURL.lastIndexOf('.')-1)+1);
          System.out.println(wanted);
      }
  }

다음과 같이 imgURL에 20230207163634.jpg라는 이름만 추출하고 싶었다.

그러기 위해 마지막 인덱스(lastIndexOf)로 검색하여, 두 번째 "."의 위치를 찾아서 추출해야 했다.

String wanted = imgURL.substring(imgURL.lastIndexOf(".",imgURL.lastIndexOf('.')-1)+1);
처음에 봤을 때 잘 이해가 되지 않았다..
그래서 번역을 돌려보았다.

이 그림을 보면 바로 이해할 수 있을 것이다.

lastIndexOf('e',10) 처럼 2번째 인자로 10을 주었다면 10번 인덱스부터 탐색을 시작하는데

바로 문자열의 0번째 인덱스를 향해(왼쪽 방향으로) 이동하게되어 index 7값이 반환 되는 것이다!!

댓글