[Swift] String 다루기

Yujin·2021년 11월 10일

Swift

목록 보기
6/6
post-thumbnail

Swift String의 다양한 함수

1. lowercased() & uppercased()

: 문자열을 모두 소문자나 대문자로 바꾸어 반환해주는 함수

2.append()

문자열 맨 뒤에 인자로 받은 문자열을 덧붙여 주는 함수

3.contains()

인자로 들어온 문자열을 포함하고 있는지 확인해 주는 함수

4.replacingOccurences()

:target과 일치한 문자열들을 replacement String으로 치환해준다.

NSString의 함수이지만 NSString은 Swift의 String과 브릿징 되므로 사용 할 수 있다.

[ Apple 문서 ]
Swift의 String 타입은 파운데이션의 NSString 클래스와 브릿징됩니다. 파운데이션은 또 한편으로 String 타입을 확장하여 NSString에서 정의한 메소드를 사용할 수 있게 합니다. 이는 파운데이션을 임포트하면, 별다른 캐스팅 없이도 String 타입에서 NSString의 메소드를 사용할 수 있다는 의미입니다.

브릿징은 일종의 공짜 변환. 타입 자체가 자동으로 변환X, 타입과 관련을 맺는 API들이 자동으로 호환 대상 타입을 위한 타입으로 변환된다는 뜻.

5.hasPrefix() & hasSuffix

hasPrefix(): String이 인자로 들어온 String으로 시작하는지 확인
hasSuffix(): String이 인자로 들어온 String으로 끝나는지 확인

6.removeFirst() & removeLast()

removeFirst(): String의 첫 글자 삭제
removeLast(): String의 마지막 글자 삭제

이 외 String의 다양한 함수

Apple 문서 - String
Apple 문서 - NSString


String 문자열 요소 접근 꿀팁

문자열 요소에 접근하기 위해서는 subscript 를 사용하여 Character 값에 접근한다.

subscript 란 대괄호 [] 안에 특정 값을 넣어 시퀀스나 딕셔너리 등 의 원하는 값을 바로 찾아오는 기능을 말한다.
ex ) str[3]

그런데 Swift의 문자열은 Int형 인덱스값으로 접근할 수가 없고 String.Index 형을 넣어줘야 한다고 한다..

let str = "ABCDE"
str[str.startIndex] // A
str[str.index(after: str.startIndex)] // B
str[str.index(before: str.endIndex)] // E

str[str.index(str.startIndex, offsetBy: 2] // C
str[str.index(str.endIndex, offsetBy: -2] // D

위 처럼 index()를 이용해 원하는 String.index를 생성한 후 [ ]안에 집어 넣어줘야 하는데 굉장히 불편하다.

따라서 extension을 이용해 String의 subscript()함수를 아래처럼 오버라이딩해서 쓰면 한결 편해진다.

extension String {
    subscript(_ index: Int) -> Character {
        return self[self.index(self.startIndex, offsetBy: index)]
    }
}

let str = "aBcDeF"
print(str[3]) // D 

참고한 링크


Array(String)

: String을 character array로 변경해줌.

let name = "Marie Curie"
print(Array(name))
// Prints "["M", "a", "r", "i", "e", " ", "C", "u", "r", "i", "e"]"
profile
하나하나 알아가는 하루하루

0개의 댓글