더북(TheBook)

7.2.3 문자열 슬라이스 이해하기

지금까지는 문자열에서 인덱스를 하나만 사용해 문자를 얻는 방법을 살펴봤다. 하지만 문자열에서 어떤 지점부터 어떤 지점까지 여러 문자를 한꺼번에 얻고 싶을 때도 있다. 예를 들어 선생님이 반 학생의 이름을 ‘##### 이름 성’이라는 형태의 정보로 가지고 있다고 하자(#는 숫자를 뜻한다). 이 데이터 형식 중 맨 앞의 여섯 글자는 항상 똑같이 숫자 5개 뒤에 공백이 하나 온다. 여기서 필요한 건 학생의 성명뿐이다. 이 경우 7번째 문자부터 문자열의 맨 마지막까지 잘라내면 학생의 성명만 얻을 수 있다.

이런 방식으로 데이터를 추출하는 경우, 문자열의 부분 문자열(substring)을 가져온다고 한다. 예를 들어 문자열 s = "snap crackle pop"가 있을 때, "snap"은 s의 부분 문자열이다.

각괄호를 더 복잡한 방법으로 사용해 보자. 규칙에 따라 두 인덱스를 각괄호에 넣으면 문자열의 부분 문자열을 얻을 수 있는데, 이를 슬라이스(slice)라고 한다. 문자열을 슬라이스하려면 각괄호 안에 최대 세 개의 정수를 콜론(:)으로 구분해 넣으면 된다.

[시작_인덱스 : 끝_인덱스 : 간격 ]

여기서 세 정수는 다음과 같은 역할을 한다.

시작_인덱스: 부분 문자열 중 첫 번째 문자의 인덱스를 지정한다.

끝_인덱스: 부분 문자열 중 마지막 인덱스를 지정한다. 단, 끝_인덱스 위치에 있는 글자는 부분 문자열에 들어가지 않고 바로 앞 문자까지만 들어간다는 사실에 유의하라.

간격: 원래 문자열에서 어떤 간격으로 문자를 가져올지 지정한다(예를 들어 이 값이 2라면 한 문자씩 건너뛰면서 문자를 부분 문자열에 넣는다). 간격이 양수면 왼쪽에서 오른쪽으로 문자를 부분 문자열에 넣고, 음수면 오른쪽에서 왼쪽으로 문자를 넣는다. 간격 값을 지정하지 않을 수도 있다. 그런 경우 1이 기본값이며 모든 문자를 부분 문자열에 넣는다(즉, 문자를 건너뛰지 않는다).

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.