문자열(String)

연결(joined)

let str = ["str", "ing", "!"]
var string = str.joined() // "string!"
string = str.joined(separator: " ") // str ing !
string = str.joined(separator: ", ") // str, ing, !
string = str.joined(separator: "a") // strainga!

알파벳 소문자 대문자간 변환

var str = "string"
str = str.capitalized  // 첫번째만 대문자로 변경 "Abcdef" import Foundation 필수
str = str.uppercased() // 전체 대문자로 변경 "ABCDEF"
str = str.lowercased() // 전체 소문자로 변경 "abcdef

문자열 치환

import Foundation
var str = "abcdef"
var str2 = str.replacingOccurrences(of: "a", with: "b")
print(str)  // 원본에 영향 없음
print(str2) // bbcdef

포함하는 값 찾기 (output: Bool)

import Foundation
var str = "string"
str.contains("g")  // true
str.contains("st") // true
str.contains("ring") // true
str.contains("sti") // false

문자열 상태에서 계산 / 문자열 안에 계산식이 들어 있을때

import Foundation
let mathExpression = NSExpression(format: "3+4+2-1*6") // result : 3
let mathValue = mathExpression.expressionValue(with: nil, context: nil) as! Int

문자열 인덱스(index) 메소드 정리

import Foundation
 
// 문자열 원소 접근
var str = "as soon as posible"
//str[0] // 직접 접근 불가능, String 인덱스로 접근가능
str[str.startIndex] // "a" 시작 원소
let secondIndex = str.index(after: str.startIndex) // 2번째 원소
let second = str[secondIndex]
let endIndex = str.index(before: str.endIndex) // 마지막 원소
 
// n번째 문자 가져오기 n == 3
var index = str.index(str.startIndex, offsetBy: 3 - 1)
str[index] // "c"
 
// 일정 범위의 문자열만 가져오기
let sub = str[str.startIndex...index] // "abc"
 
// 특정 character replace
str.replacingOccurrences(of:" ", with:"+") // import Foundation 필수
 
// 특정 원소 값으로 인덱스 찾기 (옵셔널 값) 해당하는 원소값이 없으면 에러
str.firstIndex(of: "n")!
 
// subString 구하는 법 특정 원소 첫 return 까지
let substring = str[str.startIndex...str.firstIndex(of: "n")!]