String
은 Foundation
프레임워크의 NSString
이 bridge된 타입이기 때문에 NSString
의 메소드를 String
에서 캐스팅 없이 사용 가능합니다.“
)로 묶어 표현 합니다."""
다음 줄부터 마지막 """
의 직전까지를 문자열로 봅니다. 그래서 아래 singleLineString
과 multilineString
은 같은 값을 갖게 됩니다.\
)를 사용합니다."""
의 위치입니다. 아래의 경우에는 닫는 """
위치 앞에 있는 문자들은 전부 무시되고 그 이후의 공백은 문자열에 반영됩니다.\0
, \
, , , , \”
, \’
\u{n}
, n은 1-8자리 16진수 형태로 구성된 유니코드isEmpty
프로퍼티를 이용합니다.String
은 값 타입(value type)입니다. 그래서 String
이 다른 함수 혹은 메소드로 부터 생성되면 String
값이 할당 될때, 이전 String
의 레퍼런스를 할당하는 것이 아니라 값을 복사해서 생성합니다. 반대로 이야기 하면 다른 메소드에서 할당 받은 문자열은 그 문자열을 수정해도 원본 문자열이 변하지 않기 때문에 편하게 사용하셔도 됩니다.for-in
loop을 사용해 접근할 수 있습니다.U+0061
는 라틴어의 소문자 a
를 나타내고 U+1F425
는 정면의 병아리 🐥 를 나타냅니다.“한”
자를 단독으로 사용했을 때와 ㅎ
,ㅏ
,ㄴ
의 자모를 따로 결합해서 사용한 예 입니다.é
(E9)와 원심볼(20DD)을 결합한 결과입니다.U
(1F1FA)와 S
(1F1F8)를 결합한 결과입니다.count
프로퍼티를 이용합니다.startIndex
, endIndex
, index(before:)
, index(after:)
, index(_:offsetBy:)
메소드 등을 이용해 문자열에서 특정 문자에 접근할 수 있습니다.주의 위 메소드들은 Collection 프로토콜을 따르는 Array, Dictionary, Set 등에서도 동일하게 사용할 수 있습니다.
insert(:at:)
, insert(contentsOf:at:)
, remove(at:)
, removeSubrange(:)
메소드를 사용할 수 있습니다.주의 위 메소드들은 RangeReplaceableCollection 프로토콜을 따르는 Array, Dictionary, Set 등에서도 동일하게 사용할 수 있습니다.
prefix (_:)
와 같은 서브스크립트 메소드를 이용할 수 있는데, 그렇게 얻은 부분 문자열은 문자열(String) 인스턴스가 아니라 부분문자열(SubString) 인스턴스 입니다. 만약 부분 문자열을 단기간에 사용하는게 아니라 오랜기간 사용한다면 문자열 인스턴스로 바꿔서 사용하는게 좋습니다.주의 String과 Substring 모두 StringProtocol을 따릅니다. 그래서 문자 조작에 필요한 편리한 매소스들을 공통으로 사용할 수 있습니다.
==
혹은 !=
연산자를 사용합니다.A(U+0041)
와 러시아어에서 사용되는 대문자 A(U+0410)
를 비교한 것입니다.주의 Swift에서 문자열과 문자의 비교는 언어를 고려하지 않습니다. 다시말해, 언어와 상관없이 같은 문자면 같은 문자로 취급합니다.
hasPrefix(:)
, hasSuffix(:)
메소드를 사용할 수 있습니다.Act 1
가 몇개 들어있는지 확인하는 코드 입니다.Capulet's mansion
과 Friar Lawrences' cell
이 각각 몇개 들어있는지 확인하는 코드 입니다.