본문 바로가기
JS

substr와 substring의 차이

by limew 2023. 12. 8.

 

substr와 substring은 둘다 문자열에서 부분 문자열을 추출하는 메서드이다

하지만 알고리즘 문제를 풀면서 substring의 시간, 공간 효율성이 더 좋아서 이 둘의 차이점을 파헤쳐보았다.

 

substr(시작 인덱스, 길이)

시작인덱스부터 길이만큼의 문자열을 반환한다.

길이가 양수이면 시작인덱스부터 해당 길이만큼의 문자열을 반환하고 (좌 -> 우)

길이가 음수이면 역으로 문자열 끝에서부터 길이만큼의 문자열을 반환한다  (좌 <- 우)

 

let str = "Hello, World!";
console.log(str.substr(7, 5)); // Output: "World" 인덱스7("W")포함 5번째 문자인 d까지
console.log(str.substr(-6, 2)); // Output: "Wo" 뒤에서 6번째 인덱스(" ")에서 오른쪽으로 문자 2개

 

 

0 1 2 3 4 5 6 7 8 9 10 11 12
H e l l o ,   W o r l d !
              -6 -5 -4 -3 -2 -1

 

 

substring(시작 인덱스, 끝 인덱스)

시작인덱스부터 끝 인덱스까지의 문자열을 반환한다.

시작인덱스가 끝 인덱스보다 커도 동일한 결과를 반환한다.

 

let str = "Hello, World!";
console.log(str.substring(7, 12)); // Output: "World"
console.log(str.substring(12, 7)); // Output: "World"