[ios_Swift] 문자열(String Basics)

이시영·2023년 8월 2일

Swift의 문자열에 대해서 알아보자

문자열은 보통 아래와 같이 문자열 lteral을 이용하여 표현된다.

let str = "Hello, World"

이와 비슷하게 빈문자열을 만드는 방법은 아래와 같다.

let empryStr = ""

그리고 아래처럼 생성자를 만들 수도 있다.

emptyStr = String()

이 생성자를 이용하면 다른 타입의 값들도 문자로 만들 수 있다.

let a = String(15)
let b = String(true)
let c = String(17.456)
let d = String(str)

이는 함수처럼 사용 가능하며
심지어는 다른 문자열을 새로운 문자열로 만드는데 사용할 수 있다.

또한 숫자를 특정 진수로 변환시킬 수도 있는데

let e = String(160, radix: 16)
// a0
let f = String(160, radix: 8)
// 240

위의 첫번째 예시는 160을 16진수로 표현한 것으로 두번째 아규먼트인 radix가 진수를 나타내며 이를 조정하여 진수값을 변경할 수 있다.

특정문자를 반복할 수 있는 방법도 있다.

let repeatStr = String(repeating: "Hello! ", count: 4)
// Hello! Hello! Hello! Hello!

그리고 특수한 이모지를 만드는 방법도 있는데

let a = "\u{1f44f}"
// 👏

위와 같은 예시 코드를 이용하면 박수 이모지(👏)를 만들 수 있다.

문자열끼리의 연결도 간단한데

let a = String(true)
let b = String(123)

let c = "\(a) \(b)"
// true 123
let d = a + b
// true123

위의 첫번째 예시처럼 String Interpolation 으로 문자열을 동적으로 구성하는 방법도 가능하며 '+' 연산자로도 문자열끼리 연결이 가능하다.
다만 문자열간의 연산에선 오직 '+'이용 가능하며 '-', '*' 등 다른 연산자들은 사용할 수 없다.

또한 복합할당 연산자도 사용 가능하다.

let str = "Hello, Swift"
str += "~!!"
// Hello, Swift~!!

문자열의 길이를 확인할 수 있는 여러 방법들도 있다.

let str = "Hello" 

str.count
// 5

str == 0
// false

str.isEmpty
// false

str == "Hi"
// false

"hello" != "Hello"
// true

위의 첫번째 예시는 문자열의 길이를 보여준다.
두번째는 문자열의 길이가 0 이 아님으로 false가 나온다.
세번째는 상수 str이 비어있냐고 묻는데 str = "Hello"이므로 false 이다.
네번째도 str = "Hello" 이기 때문에 false 이며
다섯번째도 swift는 대소문자를 구분하며 서로다름을 의미하는 '!=' 부호를 썼기에 true 이다.

이 외에도 대문자를 소문자로, 소문자를 대문자로 바꿔주는 메소드들이 있는데

let str = "Hello world"

str.lowercased()
// hello world

str.uppercased()
// HELLO WORLD

str.Capitalised
// Hello World

첫번째인 lowrcased는 모든 문자를 소문자로,
두번째인 uppercased 는 모든 문자를 대문자로,
마지막인 Capitalised는 각 단어의 첫번째 글자만을 대문자로 바꿔준다.

위의 메소드 이름들이 모두 -ed로 끝나는데 이러한 이름으로 끝나는 메소드들은 항상 원본을 그대로 두고 새로운걸 리턴한다.
이는 메소드의 결과를 유추하는 단서로 사용된다.

문자는 메모리에 저장될 때 배열형태로 저장된다. 때문에 문자를 열거할 수도 있는데

for str in "Hello"{
    print(str)
}
/*
H
e
l
l
o
*/

이렇듯 문자열은 배열과 비슷한 특징르 가지고 있다.
때문에 다음과 같이 사용할 수 도있는데

let str = "12345"
str.randomElement()

위의 식은 문자열 속의 문자하나를 랜덤하게 선정한다.
단어 하나를 랜덤하게 값으로 지정할 뿐만아니라 랜덤한 문자열(String)을 만들 수 도있는데

let str = "12345"

str.shuffled()

Stirng(str.shuffled())

shuffled를 사용하면 기존의 문자열이 랜덤한 문자열(String) 값으로 변한다.

0개의 댓글