Swift/문법

[Swift|문법] String 문자열 추출하기(자르기) - prefix(_:), suffix(_:), .index(.startIndex, offset:)

yurim-dev 2024. 2. 21. 19:01

📌 prefix(_:) : 앞에서부터 n글자 추출

https://developer.apple.com/documentation/realitykit/entity/childcollection/prefix(_:)/

 

1. 정의: collection의 요소를 앞에서부터 n개까지 담은 subsequence를 반환한다.

 

2. 파라미터: maxLength 파라미터는 최대로 반환할 문자열 길이를 의미한다. 0 이상의 수이어야 한다.

 

3. maxLength가 collection의 요소 수보다 큰 경우, 결과값은 collection의 모든 요소를 포함한다.

let numbers = [1, 2, 3, 4, 5]
print(numbers.prefix(2))
// Prints "[1, 2]"
print(numbers.prefix(10))
// Prints "[1, 2, 3, 4, 5]"

 

4. 예제

var strFeelings = "happy, sad, frustrated"
var arrFeelings = ["happy", "sad", "frustrated"]

print(strFeelings.prefix(5)) // "happy"
print(arrFeelings.prefix(2)) // ["happy", "sad"]

 

 

📌 suffix(_:) : 뒤에서부터 n글자 추출

https://developer.apple.com/documentation/realitykit/entity/childcollection/suffix(_:)/

 

1. 정의 : collection의 요소를 뒤에서부터 n개까지 담은subsequence를 반환한다.

2. 파라미터 : maxLength 파라미터는 최대로 반환할 문자열 길이를 의미한다. 0 이상의 수이어야 한다.

3. maxLength가 collection의 요소 수보다 큰 경우, 결과값은 collection의 모든 요소를 포함한다.

4. 리턴 타입은 subsequence 이다.

let numbers = [1, 2, 3, 4, 5]
print(numbers.suffix(2))    // Prints "[4, 5]"
print(numbers.suffix(10))   // Prints "[1, 2, 3, 4, 5]"

let b = numbers.suffix(2    // [4, 5]
type(of: b)                 // ArraySlice<Int>

 

4. 예제

[Swift|코드카타] (프로그래머스) 입문 #27. 핸드폰 번호 가리기 - enumerated(), suffix(_:), map

 

 

📌 Index : 중간에서 추출

var strNumber = "12345678"

let startIndex = strNumber.index(strNumber.startIndex, offsetBy: 4)
let endIndex = strNumber.endIndex

let lastFourDigits = String(strNumber[startIndex..<endIndex]) // "5678"

 

 

📌 dropFirst(_:) : [0..<숫자]를 제외한 나머지 부분열 반환

배열.dropFirst(0 이상의 숫자) : 배열[0..<숫자]를 떼어낸 나머지 부분열(subsequence) 반환

let numbers = [1, 2, 3, 4, 5]
let a = numbers.dropFirst(2)   // [3, 4, 5]
type(of: a)                    // ArraySlice<Int>

 

 

 

 

참고: 마고자비 블로그, Steve Jack 블로그, ssooyn_n 블로그