알고리즘 문제를 풀다가 문자열을 수정하거나 특정부분을 추출할 때가 상당히 많았다. 그럴때마다 메서드를 검색했어야했는데 이번 기회에 한번 정리를 해보려고 한다.
문자열을 자르는 메서드는 기본적으로 3가지가 있다.
-substr
-substring
-slice
substr(”시작 위치”, “길이”) or substr(”시작 위치”)
substr()함수는 시작위치부터 해당 길이만큼 자르는 기본적인 함수이다.
길이부분을 생략하면 시작위치부터 문자열 끝까지 자른다.
var str = 'JavaScript';
var result1 = 'str.substr(0,2);
// 결과 : "Ja"
var result2 = 'str.substr(2,4);
// 결과 : "va"
var result3 = 'str.substr(2);
// 결과 : "vaScript"
substring(”시작 위치”, “종료 위치”) or substring(”시작 위치”)
substring()함수는 시작 위치에서 종료 위치까지 문자열을 자른다.
중요한 점은 종료 위치의 -1까지 문자열을 자른다.
인자에 음수(-)를 대입하면 해당 값은 “0”으로 치환된다.
그리고 종료 위치의 인자가 “0” 또는 음수(-)인 경우 첫번째 인자와 두번째 인자의 순서는 바뀐다.
var str = 'JavaScript';
var result1 = str.substring(0,2);
// 결과 : "Ja"
var result2 = str.substring(2,5);
// 결과 : "vaS"
var result3 = str.substring(2,7);
// 결과 : "vaScr"
var result4 = str.substring(4);
// 결과 : "Script"
var result5 = str.substring(-4,5); // str.substring(0,5);
// 결과 : "JavaS"
var result6 = str.substring(2,-1); // str.substring(0,2);
// 결과 : "Ja"
slice(”시작 위치”, “종료 위치”) 또는 slice(”시작 위치”)
slice함수는 기본적인 사용법이 substring함수와 동일.
다른 점은 음수(-)를 사용할 때 치환을 안해도 된다. 자유롭게 사용 가능.
var str = 'JavaScript';
var result1 = str.slice(0,2);
// 결과 : "Ja"
var result2 = str.slice(2,6);
// 결과 : "vaSc"
var result3 = str.slice(2);
// 결과 : "vaScript"
var result4 = str.slice(-4);
// 결과 : "ript"
var result5 = str.slice(-4,8);
// 결과 : "ri"
var result6 = str.slice(2,-1);
// 결과 : "vaScrip"