지지나

Javascript - substr, substring 차이가 뭘까? 본문

기획자의 프로그래밍 걸음마/Javascript

Javascript - substr, substring 차이가 뭘까?

Gygyna 2020. 9. 13. 15:46

자바스크립트 기본강의를 들으면서 프로래머스 코딩테스트도 조금씩 해보고 있습니다. 

1주일만에 기본편을 듣고 바로 문제풀이 하는것이 조금 하드코어라고는 생각하지만, 수학문제도 언제까지 개념원리만 달고 있을 수는 없는 것과 동일하다고 생각합니다ㅋㅋ

 

다만 아직 모르는 메소드가 태반이라 내 풀이법엔 함수식이 아아주 구구절절 길다는 것ㅎㅎ;;;

 

원래는 코딩테스트 풀이를 따로 포스팅하고 싶었지만, 프로그래머스 사이트에 광고가 달린 상업용 블로그는 포스팅 허용을 하지 않는다고 해서 풀다가 알게 된 함수, 메소드 위주로 정리하려 합니다ㅠㅠ

 

자아, 본격적으로 자바스크립트에서 문자를 추출할때 헷갈리기 쉬운 substr, substring 의 차이를 알아보겠습니다.

 

Substr(n번째, 몇 개) 메소드는 'n번째에서 시작해서 몇 개의 문자를 추출할거니?' 라는 뜻입니다.

 

예시를 들자면, '독도는 우리땅'으로 substr을 이용해 문자열을 가져와보았습니다.

**참고로 사이띄기도 공백인 문자입니다.

 

 

 
0번째 1번째 2번째 3번째 4번째 5번째 6번째

 

Substr(n번째, 몇 개)에서 뒤의 '몇 개' 파라미터는 생략 가능하며, 생략시 나머지 문자열을 모두 가져옵니다.

첫번째 a1에서 substr(0)이라고 지정했기 때문에 0번째, 즉 맨 처음 글자인 '독'에서 나머지를 전부 가져와서 '독도는 우리땅'이라는 결과가 나옵니다.

 

substr(4,3)은 4번째 글자인 '우'부터 3개의 문자열을 가져오므로 '우리땅'이라는 결과가 나오게 됩니다.

 

같은 예시로 substring을 출력해 볼까요?

 

Substring(n번째, n'번째) 메소드는 'n번째에서 시작해서 n'번째 이전 까지의 문자를 추출할거니?' 라는 뜻입니다.

**주의할 점은, 뒤의 n'번째 파라미터에서 n'번째는 생략한, 그 이전까지의 문자를 가져온다 것인데요, 예시로 보아요!

 

 

substring도 substr과 마찬가지로 두번째 parameter는 생략가능 하며 생략시 나머지 문자열 전체가 추출됩니다.

 

그래서 첫 번째 substring(0)을 입력하면 0번째인 '독'에서 나머지 문자까지 전체를 가지고 오게 됩니다.

 

b2의 substring(0,2)는 0번째인 '독'부터 2번째 '는' 이전까지 추출하므로, '독도'라는 결과가 나오고,

b4의 substring(2,5)는 2번째인 '는'부터 5번째 '리' 이전까지 가져오므로, '는 우'라고 출력이 되는 것이지요.

 

또한, substring(n,n')의 경우 n번째에서 n'번째 이전까지 문자열을 추출하기 때문에 n과 n'의 순서를 바꾸어도 결과는 동일한 것을 예제 b4와 b5에서 확인할 수 있습니다.

Comments