str.split(separator, limit?) 메서드는 구분자(separator)를 기준으로 문자열을 분리할 때 사용하한다. 사용법도 간단하고 개발하면서 가장 많이 사용하는 메서드 중 하나다. 하지만 split()을 사용하다보면 의도치 않게 '' 빈 문자열이 생기는 상황이 종종 발생한다.

split() 메서드는 문자열 시작 지점부터 구분자를 탐색하면서 그 사이에 어떤 문자열이 존재하는지 확인한다. 만약 구분자를 제외하고 다른 문자열이 없으면 빈 문자열을 반환한다. 정리하면 아래 3가지 상황에 부합할 때마다 빈 문자열이 발생한다.

  1. 구분자가 문자열 처음에 위치할 때
  2. 구분자가 문자열 마지막에 위치할 때
  3. 구분자 두 개가 연속으로 나타날 때
'?apple'.split('?'); // ['', 'apple']
'??apple'.split('?'); // ['', '', 'apple']
'apple?'.split('?'); // ['apple', '']
'apple??banana'.split('?'); // ['apple', '', 'banana']
'apple???banana'.split('?'); // ['apple', '', '', 'banana']


구분자가 문자열 처음에 위치할 때


Case 1

'?apple'.split('?'); // ['', 'apple']

Untitled

Case 2

'??apple'.split('?'); // ['', '', 'apple']