기본 / 배열 변환
string.count // 문자열의 개수 Int
string.isEmpty // 문자열이 비었는지 true/false
string.contains("문자열") // 문자열이 문자열을 포함하는지 true/false
string.randomElement() // 문자열중 랜덤을 리턴
string.suffled() // 문자열을 섞어서 Character배열로 리턴
let sArr = string.map{ String($0) } //문자열을 String배열로 리턴
let string = sArr.joined() //String배열을 String으로 변환
let arr = Array(string) // 문자열을 Character배열로 변환
let string = String(arr) // Character배열을 문자열로 변환
문자열 접근
String[인덱스]
문자열 인덱스 타입⭐️⭐️⭐️
string.startIndex // 문자열의 시작인덱스
string.endIndex // 문자열의 마지막 인덱스
⭐️⭐️⭐️string.index(string.startIndex, offsetBy:2) // 문자열의 시작으로부터 2만큼 떨어진 인덱스
string.index(after: 인덱스) //인덱스 다음 인덱스
string.index(before: 인덱스) //인덱스 전 인덱스
string.firstIndex(of: 요소) // 요소의 첫 번쨰 인덱스
string.endIndex(of: 요소) // 요소의 마지막 인덱스
string.range(of: "Swift") // "Swift"의 range
대/소문자 변환
String.lowercased() // 소문자로 변환
String.uppercased() // 대문자로 변환
String.captialized // 맨 앞글자만 대문자로 변환 captial swift -> Captial Swift
문자열 치환(교체)
String.replacingOccurrences(of: "해당문자를", with: "해당문자로")
//"swift"의 범위를 가져와서 있다면 해당 범위를 "C"로 교체
if let range = string.range(of: "swift"){
string.replaceSubrange(range, with: "C")
}
문자열 자르기⭐️⭐️⭐️
split(separator:)
String.split(separator: " ") // 공백을 기준으로 문자열을 자름(SubString으로 리턴) <== 불편
let data = Array(i.split(separator: " ")// 잘라서 배열로 저장
String.split(whereSeparator: 클로저) // 클로저를 받기 떄문에 Deep한구현 가능
component(separatedBy:)
// 한개의 문자를 기준으로 자름 => 한개의 문자를 제거
String.components(separatedBy: " ") // " "를 기준으로 문자열을 자름
//=> " S t e v e" => ["", "S", "t", "e", "v", "e", ""]
String.components(separatedBy: " ").join // => "Steve"
//여러개를 기준으로 자름 => 여러개를 삭제가능
String.components(separatedBy: ["+", "-", "*", "/"]) // 내부의 문자들을 기준으로 자름
// => "1+2-3*4/5" => "12345"
접두어/접미어 반환
string.perfix(갯수) // 시작으로부터 x개 반환
string.suffix(갯수) // 끝으로부터 x개 반환
앞/뒤 drop시킨 나머지 반환
//갯수 만큼 drop한 나머지를 return / 내부수정이 아님
string.dropFirst(갯수)
string.dropLast(갯수)
문자열 삭제
//갯수개를 remove를 시킨 나머지를 반환 / 내부수정이 일어남
string.removeFirst(갯수)
string.removeLast(갯수)
string.remove(at: 인덱스)
string.removeSubrange(범위)
string.removeAll() //모두삭제
string.removeAll(keepingCapacity: treu) //메모리는 유지
문자열(문자)을 삽입
string.insert("1", at: 인덱스) // 추가할 요소(문자)와 추가할 위치의 인덱스
string.insert(contentsOf: "111", at: string.index(after: string.startIndex)) //(문자열)
문자열 뒤에 추가
string.append("문자열") //문자열 뒤에 추가
string += "문자열" //문자열 뒤에 추가
Char
char를 Int로 변환
char.wholeNumberValue!