내일배움캠프 iOS

iOS) TIL #24 문자열 String

yjuni22 2024. 11. 21. 21:14

https://developer.apple.com/documentation/swift/string

 

String | Apple Developer Documentation

A Unicode string value that is a collection of characters.

developer.apple.com

 

알고리즘을 풀다가 매번 혼자 풀지 못하고 검색의 도움을 받기 싫어서 검색한 것들을 정리해보려고 한다.

 

문자열 “Swift” ↔ [ “S”, “w”, “ i ”, “ f ” , “ t ” ] 배열 (쉽게 변형 가능)

var someString = "Swift"

// 문자열을 문자열(String) 배열화 하기 

var array: [String] = someString.map { String($0) }

 [ “S”, “w”, “i”, “f” , “t” ]

// 문자열 배열 [String] =====> 문자열 

var newString = array.joined()

 “Swift”

 

활용 예시 ) 문자열 랜덤으로 섞기

 

someString.shuffled()         
// 섞어서 문자(Character) 배열로 리턴 ["t", "i", "w", "S", "f"]

newString = someString.map { String($0) }.shuffled().joined()

 

문자열은 배열과 다르게 인덱스 특별한 타입으로 되어 있다.

- 문자열의 인덱스는 정수가 아님 ⭐️ (특별한 타입)

[String.Index 타입]

문자열.index(i: String.Index, offsetBy: String.IndexDistance)

 

문자열 인덱싱

index(of:) 또는 firstIndex(of:): 첫 번째로 나타나는 특정 문자의 인덱스를 반환합니다.
lastIndex(of:): 마지막으로 나타나는 특정 문자의 인덱스를 반환합니다.

 

 

배열처럼 서브스크립트를 활용해 문자열의 인덱스에 접근이 가능하다

문자열[String.Index]

 

인덱스 구하기

  • startIndex : 문자열의 시작 요소 인덱스를 가리킨다.
  • endIndex : 문자열의 마지막 요소 인덱스 다음을 가리킨다.
  • index(before: String.Index: 인자로 들어온 인덱스 1칸 앞을 가리킨다.
  • index(after: String.Index: 인자로 들어온 인덱스 1칸 뒤를 가리킨다.
  • index(String.Index, offsetBy: String.IndexDistance: 인자로 들어온 인덱스와 offsetBy 차이만큼 떨어진 곳을 가리킨다.
  • firstIndex(of: Character), lastIndex(of: Character) : 인자로 들어온 문자가 몇번째 인덱스에 있는지 (Optional)