[Swift] 문자열 다루기

728x90

 

스위프트에서 문자열을 다루는 방법에 대해서 알아 보겠습니다.

 

문자열 다루기

 

문자열 길이

/*
 문자열 길이 -> count
 */

var strTest: String = "안녕하십니까?"
print(strTest.count) // 7

 

문자열 안의 문자

/*
 문자열 안의 문자
 
 문자열 안에 들어있는 문자를 확인 할때는 [] 대괄호 안에 숫자대신 스위프트에선 Index객체를 넣어 줍니다.
 
 첫번째 문자의 위치 : 문자열.startIndex
 마지막 문자 뒤의 위치 : 문자열.endIndex
 */

var subFirst = strTest[strTest.startIndex] // 안
var subLast = strTest[strTest.index(before: strTest.endIndex)] // ?

 

prefix와 suffix

/*
 prefix와 suffix
 
 hasPrefix : 문자열이 어떤 글자로 시작하는지 확인
 hasSuffix : 문자열이 어떤 글자로 끝나는지 확인
 */

if strTest.hasPrefix("안") {
    print("안으로 시작")
}

if strTest.hasSuffix("?") {
    print("?로 끝남")
}

 

문자열 안에 문자들 추출

/*
 문자열 안에 문자들 추출
 
 다른 언어들은 substring이라는 메서드를 제공하지만
 스위프트는 범위 연산자를 사용해야됩니다.
 
 -> 문자열[index범위]
 */

let strRange = strTest.index(strTest.startIndex, offsetBy: 2) ... strTest.index(strTest.endIndex, offsetBy: -2)
print(strTest[strRange]) // 하십니까

let strRange2 = strTest.index(strTest.startIndex, offsetBy: 2) ..< strTest.index(strTest.endIndex, offsetBy: -2)
print(strTest[strRange2]) // 하십니

 

문자열 안에 문자들 삭제

/*
 문자열 안에 문자들 삭제
 
 다른 언어들은 substring이라는 메서드를 제공하지만
 스위프트는 범위 연산자를 사용해야됩니다.
 
 -> 문자열.removeSubrange[index범위]
 */

strTest.removeSubrange(strRange2) // 안녕까?

 

문자열 대소문자 변경

/*
 문자열 대소문자 변경
 
 소문자로 변환 : 문자열.lowercased
 대문자로 변환 : 문자열.uppercased
 */

var userID = "Seungjin429"
print("소문자 :", userID.lowercased()) // 소문자 : seungjin429
print("대문자 :", userID.uppercased()) // 대문자 : SEUNGJIN429

 

문자열 나누기

/*
 문자열 나누기
 
 split : 문자열에 들어있는 특정 문자열을 기준으로 문자열을 분리
 */

let splitStr = "good,blog,jinShine"
let splitArr = splitStr.split(separator: ",")

splitArr.map { str in
    return print(str)
}

//good
//blog
//jinShine