Swift Strings

2021년 4월 24일 수정

이 글은 Swift 문자열(String)과 관련된 팁을 개인적인 용도(?)로 정리한다.

문자열 내에서 검색하기

"Hello World!".range(of: "llo")

반환 값은 Range<String.Index>? 타입이다.

문자열 일부만 얻기(Substring)

if let s = someString.range(of: "start>"),
   let e = someString.range(of: "<end") {
    return someString[s.upperBound..<e.lowerBound]
}

이 코드는 start>TEXT<end 이런 문자열에서 TEXT 부분만 얻어올 때 사용할 수 있는 코드다.

문자로 문자열 나누기(Split)

가장 일반적인 방식은 아래와 같이 단일 문자(Character) 단위로 나누는 것이다.

"a,b,c".split(separator: ",")
// => ["a", "b", "c"]

여러 문자로 문자열 나누기

만약 나누려는 구분자가 한 문자가 아니라면 whereSeparator 를 사용할 수동 있다.

"a, b, c".split { [",", " "].contains($0) }.map(String.init)

클로저를 축약시켜서 파라미터 이름이 보이지 않는다는 점에 주의하자. 마지막의 map 은 문자열 리스트로 변환하는 과정이다. Substring 타입이 필요하다면 map 스테이지는 필요 없다.

문자열에서 특정 문자열을 다른 문자열로 치환하기

String 구조체에서 제공되는 replacingOccurrences 메서드를 이용할 수 있다.

"This is test string".replacingOccurrences(
    of: "test",
    with: "sample"
)