달나라 노트

Google Apps Script : substring, slice (문자열 자르기) 본문

Google Apps Script

Google Apps Script : substring, slice (문자열 자르기)

CosmosProject 2022. 11. 30. 20:18
728x90
반응형

 

 

 

String 객체의 substring method는 문자열에서 시작 위치 ~ 끝 위치 까지의 문자를 잘라서 return합니다.

String 객체의 slice method도 substring method와 동일한 기능을 가집니다.

 

 

사실 관련 내용을 찾아보면 두 method에 약간 차이가 있는 것 같습니다.

substring method = 특정 위치(index)에서 시작해서 특정 길이만큼 문자를 잘라 return한다.

slice method = 특정 위치(index)에서 시작해서 끝 위치(index)까지 문자를 잘라 return한다.

 

위 두 설명을 보면 문자를 자를 때 어떤 위치까지 자를 것이냐 어떤 길이만큼 자를 것이냐라는 차이가 있죠.

근데 이상하게도 지금 글을 쓰는 시점을 기준으로 실제 GAS 편집기에서 코드를 실행해보면 둘 다 start index ~ end index 구간의 문자열을 자르는 결과가 return됩니다.

GAS에 현재 오류가 있다거나 하는 등 위같은 현상이 발생하는 정확한 원인은 모르겠으나 현상태에서 위 두 method는 동일한 기능을 수행하므로 위 두 method는 동일하다고 가정하고 설명하겠습니다.

 

 

 

Syntax

String.substring(start_index, end_index)
String.slice(start_index, end_index)

 

substring/slice method는 어떠한 문자열(string)에 적용할 수 있습니다.

 

- start_index

문자를 자를 때 시작할 문자의 index 값입니다.

 

- end_index

문자를 자를 때 끝 문자의 index 값입니다.

 

주의할 점은 start_index 위치에 있는 문자는 결과에 포함되지만 end_index 위치에 있는 문자는 결과에 포함되지 않습니다.

 

무슨 말인지 예시를 통해 살펴봅시다.

 

 

function myFunction(){
  var test_string = 'This is MY laptop. 이것은 나의 노트북입니다.';

  var test_substring = test_string.substring(2, 6);

  Logger.log(test_substring.length)
  Logger.log(test_substring);
}


-- Result
4.0
is i

 

test_string에 substring method를 적용한 예시입니다.

 

This is MY laptop. 이것은 나의 노트북입니다.

위 문자에 substring을 적용할 것입니다.

참고로 문자열에서 가장 첫 번째 글자는 index = 0이며 그 후로 index가 1씩 증가합니다.

 

- var test_substring = test_string.substring(2, 6);

위 예시를 보면 substring의 parameter로서 2와 6이 전달되어있습니다.

test_string 변수에 저장된 문자열을 자르는데

index = 2 위치에서 시작해서 index = 6 위치에 있는 문자까지 자르고 return하라는 의미입니다.

여기서 end index인 index = 6 위치에 있는 문자는 결과에 포함되지 않습니다.

 

그리고 substring의 결과를 test_substring 변수에 저장합니다.

 

 

결과를 보면 is i 입니다.

test_substring에 length를 적용해보면 4가 return됩니다. 즉, 총 네글자라는 의미이죠.

 

This is MY laptop. 이것은 나의 노트북입니다.

위 문자에서 각 문자별 index를 앞부분만 나타내면 아래와 같습니다.

 

T -> index = 0

h -> index = 1

i -> index = 2

s -> index = 3

(공백) -> index = 4

i -> index = 5

s -> index = 6

(공백) -> index = 7

 

 

즉, index = 2인 i부터 index = 6인 s까지 잘리게되는데 index = 6인 문자열은 결과에 포함되지 않습니다.

그래서 결과는 is i인 것이죠. (공백도 하나의 문자로 판단됩니다.)

 

 

 

 

function myFunction(){
  var test_string1 = 'This is MY laptop. 이것은 나의 노트북입니다.';
  var test_substring = test_string1.substring(2, 6);

  var test_string2 = 'This is MY laptop. 이것은 나의 노트북입니다.';
  var test_slice = test_string2.slice(2, 6);

  Logger.log(test_substring.length)
  Logger.log(test_substring);

  Logger.log(test_slice.length)
  Logger.log(test_slice);
}


-- Result
4.0
is i
4.0
is i

 

substring method와 slice method를 동시에 적용해보았습니다.

 

결과가 동일합니다.

 

 

 

 

 

 

728x90
반응형
Comments