달나라 노트

Google Apps Script : lastIndexOf (일치하는 가장 마지막 문자열 찾기) 본문

Google Apps Script

Google Apps Script : lastIndexOf (일치하는 가장 마지막 문자열 찾기)

CosmosProject 2022. 12. 1. 19:32
728x90
반응형

 

 

 

String 객체의 lastIndexOf method는 string에서 어떤 text를 찾은 후 찾아진 text의 위치 중 가장 나중(=오른쪽)에 있는 문자의 위치를 return합니다.

 

 

Syntax

String.lastIndexOf(text, end_index)

 

lastIndexOf method는 String에 적용할 수 있으며 2개의 parameter를 받습니다.

 

- text

String에서 찾을 문자입니다.

 

- end_index

String에서 text를 찾을 때 String의 첫 글자부터 end_index까지 탐색을 하게됩니다.

end_index의 기본값은 문자열의 길이입니다. (즉, end_index를 생략할 경우 String의 처음부터 끝까지를 탐색의 대상으로 합니다.)

 

 

 

 

 

 

 

 

function myFunction(){
  var test_string = 'Apple_Banana_Peach_Melon';

  Logger.log(test_string.lastIndexOf('a'));
  Logger.log(test_string.lastIndexOf('a', 3));
  Logger.log(test_string.lastIndexOf('a', 8));
  Logger.log(test_string.lastIndexOf('a', 9));
}



-- Result
15.0
-1.0
7.0
9.0

 

위 예시를 보고 lastIndexOf method의 특징을 알아가봅시다.

 

- test_string.lastIndexOf('a')

먼저 parameter가 1개만 주어졌습니다. 즉, 찾을 텍스트 a만 주어진 것이죠.

이런 경우 end_index는 문자열의 길이가 되며 String 처음부터 끝까지를 대상으로 a를 찾으라는 의미입니다.

 

Apple_Banana_Peach_Melon

String에서 a를 모두 찾으면 위와 같습니다.

lastIndexOf는 대문자 소문자를 다른 문자로 취급하기 때문에 가장 첫번째 대문자 A는 대상에서 제외됩니다.

그러면 총 4개의 a가 찾아지죠.

 

lastIndexOf method는 이렇게 찾아진 문자 중 가장 마지막(=오른쪽)에 있는 문자의 위치(index)를 return합니다.

그러면 Peach에 있는 a 위치가 return되는데 이 위치는 전체 test_string 기준으로 15입니다.

따라서 15가 return됩니다.

 

 

 

- test_string.lastIndexOf('a', 3)

parameter로서 2개가 주어졌습니다.

찾을 test는 a이고, end_index는 3이네요.

end_index가 3이라는 것은 test_string의 가장 처음부터 index = 3까지의 범위에서만 a를 찾으라는 의미입니다.

 

Apple_Banana_Peach_Melon

가장 처음부터 index = 3까지의 위치는 Appl인데 여기는 a가 없죠.

따라서 a를 찾을 수 없으므로 -1이 return됩니다. (문자가 찾아지지 않는 경우 -1이 return됩니다.)

 

 

 

- test_string.lastIndexOf('a', 8)

parameter로서 2개가 주어졌습니다.

찾을 test는 a이고, end_index는 8이네요.

end_index가 8이라는 것은 test_string의 가장 처음부터 index = 8까지의 범위에서만 a를 찾으라는 의미입니다.

 

Apple_Banana_Peach_Melon

가장 처음부터 index = 3까지의 위치는 Apple_Ban인데 여기는 a가 1개 찾아집니다.

따라서 찾아진 a 중 가장 오른쪽에 있는 a의 위치가 test_string 전체를 기준으로 했을 때 index = 7이므로 7이 return됩니다.

 

 

 

- test_string.lastIndexOf('a', 9)

parameter로서 2개가 주어졌습니다.

찾을 test는 a이고, end_index는 9네요.

end_index가 9이라는 것은 test_string의 가장 처음부터 index = 9까지의 범위에서만 a를 찾으라는 의미입니다.

 

Apple_Banana_Peach_Melon

가장 처음부터 index = 3까지의 위치는 Apple_Bana인데 여기는 a가 2개 찾아집니다.

따라서 찾아진 a 중 가장 오른쪽에 있는 a의 위치가 test_string 전체를 기준으로 했을 때 index = 9이므로 9가 return됩니다.

 

 

 

 

 

 

 

function myFunction(){
  var test_string = 'Apple_Banana_Peach_Apple_Melon';

  Logger.log(test_string.lastIndexOf('App'));
}


-- Result
19.0

 

- test_string.lastIndexOf('App')

먼저 parameter가 1개만 주어졌습니다. 즉, 찾을 텍스트 App만 주어진 것이죠.

이런 경우 end_index는 문자열의 길이가 되며 String 처음부터 끝까지를 대상으로 App 텍스트를 찾으라는 의미입니다.

 

Apple_Banana_Peach_Apple_Melon

String에서 App을 모두 찾으면 위와 같습니다.

 

lastIndexOf method는 이렇게 찾아진 문자 중 가장 마지막(=오른쪽)에 있는 문자의 위치(index)를 return합니다.

그러면 두 번째 찾아진 App의 위치가 return되는데 이 위치는 전체 test_string 기준으로 19입니다.

(App 같이 다수의 글자로 이뤄진 텍스트를 찾는 경우 찾아진 텍스트의 가장 첫 글자의 위치를 기준으로 합니다.)

따라서 19가 return됩니다.

 

 

 

 

 

 

728x90
반응형
Comments