String을 어떻게 쓰면 잘 썼다고 소문이 날까?
Closed this issue · 3 comments
Taehyeon-Kim commented
String split
문자열 쪼개는 건 정말 많이 나오고 중요하다.
- split, components(separatedBy:)
String to array
let string = "abcdefg"
// 1.
// 나는 다음과 같은 꼴을 정말 많이 사용한다.
string.map { String($0) }
// 2.
string.map { $0 }
// 3.
Array(string)
SubString, SubSequence
Taehyeon-Kim commented
String.Index
// String.Index
let text = "abcdefgh"
let start = String.Index(utf16Offset: (text.count-1) / 2, in: text)
let end = String.Index(utf16Offset: text.count / 2, in: text)
print(start) // Index(_rawBits: 262157) : Index 타입
print(text[start...]) // String에서 슬라이싱을 해주려면 Index 타입의 Range를 사용해야 함
print(text[start...end])
- String.Index(utf16Offset: _, in: _)
Taehyeon-Kim commented
- Index, SubString, String
- prefix, suffix
Taehyeon-Kim commented
대소문자 관련
- isUppercase, isLowercase로 대문자, 소문자 판별 가능
- lowercased(), uppercased()로 대문자, 소문자 변환 가능
아스키 코드
- 대문자는 65, 소문자는 97부터 시작한다는 것, 그리고 알파벳 개수는 26개라는 것만 기억하자
- Character 타입에서 사용할 수 있고, Character("a").asciiValue는 UInt? 타입이다.
var letter = "abcde"
let ascii = letter.compactMap { $0.asciiValue }
print(ascii) // [97, 98, 99, 100, 101] -> UInt 타입 배열이 나온다.