// ๋ฌธ์์ด ๋ฆฌํฐ๋ด์ ํน์ ๋ฌธ์
let sparklingHeart = "\\u{1F496}" // ๐, Unicode scalar U+1F496
// ๋ฌธ์์ด ๋ณ๊ฒฝ
var variableString = "Horse"
variableString += " and carriage" // "Horse and carriage"
- ๋ฌธ์์ด์ ๊ฐ(value) ํ์
์ด๋ค.
- ์๋ณธ์ด ์๋ ์๋ก์ด ๋ณต์ฌ๋ณธ์ด ์ ๋ฌ๋๋ค.
์ ๋์ฝ๋ (Unicode)
- ์ธ์ฝ๋ฉ, ํ๊ธฐ, ๊ทธ๋ฆฌ๊ณ ๋ค๋ฅธ ์ฐ๊ธฐ ์์คํ ์์์ ํ ์คํธ ํ๋ก์ธ์ฑ์ ์ํ ๊ตญ์ ํ์ค์ด๋ค.
- Swift์ String ๊ณผ Character ํ์ ์ ์ ๋์ฝ๋๋ฅผ ์๋ฒฝํ๊ฒ ์ง์ํ๋ค.
Swift์ ๊ธฐ๋ณธ String ํ์ ์ ์ ๋์ฝ๋ ์ค์นผ๋ผ ๊ฐ (Unicode scalar values) ์ผ๋ก๋ถํฐ ์์ฑ
var word = "cafe"
word += "\\u{301}" // café
- Character ๊ฐ์ ์ํ ํ์ฅ๋ ๋ฌธ์์ ํด๋ฌ์คํฐ์ฌ์ฉ์ ๋ฌธ์์ด ๋์ ์ถ๊ฐ๊ฐ ์๋๋ผ ๋ง์ง๋ง ๋ฌธ์์ด๋ง ๋ณ๊ฒฝ๋๋ค.
๋ฌธ์์ด ์ธ๋ฑ์ค (String Indices)
let greeting = "Guten Tag!"
// 'subscript(_:)' is unavailable: cannot subscript String with an Int, use a String.Index instead.
// String.Index๋ฅผ ์จ์ค์ผ ํจ
print(greeting[7])
let index = greeting.index(greeting.startIndex, offsetBy: 7)
print(greeting[index]) // a
์ฝ์ ๊ณผ ์ญ์ (Inserting and Removing)
var welcome = "hello"
welcome.insert("!", at: welcome.endIndex)
// hello!
welcome.insert(contentsOf: " there", at: welcome.index(before: welcome.endIndex))
// hello there!
- ํ๋์ ๋ฌธ์๋ฅผ ์ฝ์ ํ๋ ค๋ฉด insert(_:at:) ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ค.
- ๋ฌธ์์ด์ ์ฝ์ ํ๋ ค๋ฉด insert(contentsOf:at:) ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ค.
var welcome = "hello there!"
welcome.remove(at: welcome.index(before: welcome.endIndex))
// hello there
let range = welcome.index(welcome.endIndex, offsetBy: -6)..<welcome.endIndex
welcome.removeSubrange(range)
// hello
- ๋ฌธ์๋ฅผ ์ญ์ ํ๋ ค๋ฉด remove(at:) ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ค.
- ๋ฒ์์ ๋ฌธ์์ด์ ์ญ์ ํ๋ ค๋ฉด removeSubrange(_:) ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ค.
๋ถ๋ถ ๋ฌธ์์ด (Substrings)
let greeting = "Hello, world!"
let index = greeting.firstIndex(of: ",") ?? greeting.endIndex
let beginning = greeting[..<index] // Hello
let newString = String(beginning)
- ์ฑ๋ฅ ์ต์ ํ๋ฅผ ์ํด
- Substrings์ด ์๋ ๋ฌธ์์ด์ ์ ์ฅํ๋๋ฐ ์ฌ์ฉ๋ ๋ฉ๋ชจ๋ฆฌ์ ์ผ๋ถ ๋๋ ๋ค๋ฅธ ๋ถ๋ถ ๋ฌธ์์ด์ ์ ์ฅํ๋๋ฐ ์ฌ์ฉ๋๋ ๋ฉ๋ชจ๋ฆฌ์ ์ผ๋ถ๋ฅผ ์ฌ์ฌ์ฉํ ์ ์๋ค..!
- ์ฆ ์๋ ๋ฌธ์์ด์ ์ ์ฅ์๋ฅผ ์ฌ์ฌ์ฉํ๋ค.
- beginning ์ greeting ์ ๋ถ๋ถ ๋ฌธ์์ด์ด๊ธฐ ๋๋ฌธ์ greeting ์ด ์ฌ์ฉํ๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฌ์ฉ
- ewString ์ ๋ฌธ์์ด์ ๋๋ค. ์ฆ ์ด๊ฒ์ ๋ถ๋ถ ๋ฌธ์์ด์์ ์์ฑ๋ ๋ ์์ ๋ง์ ์ ์ฅ์๋ฅผ ๊ฐ์ง๋ค.
๋ฌธ์์ด ๋น๊ต (Comparing Strings)
// 1. ๋น๊ต ์ฐ์ฐ์ == ๋ก ๋ฌธ์์ด ๋น๊ต
let quotation = "We're a lot alike, you and I."
let sameQuotation = "We're a lot alike, you and I."
if quotation == sameQuotation {
print("These two strings are considered equal")
}
// 2. hasPrefix(_:) ๋ฉ์๋๋ก ์ ๋์ฌ ๋น๊ต
let a = "apple pie"
print(a.hasPrefix("ap"))
// 3. hasSuffix(_:) ๋ฉ์๋๋ก ์ ๋ฏธ์ฌ ๋น๊ต
print(a.hasSuffix("pie"))
๋ฌธ์์ด์ ์ ๋์ฝ๋ ํํ (Unicode Representations of Strings)
- ์ ๋์ฝ๋ ๋ฌธ์์ด์ด ํ
์คํธ ํ์ผ ๋๋ ๋ค๋ฅธ ์ ์ฅ์์ ์ฐ์ฌ์ง ๋ ํด๋น ๋ฌธ์์ด์ ์ ๋์ฝ๋ ์ค์นผ๋ผ๋ ์ ์๋ ์ ๋์ฝ๋ ์ธ์ฝ๋ฉ ํ์ ์ค์ ํ๋๋ก ์ธ์ฝ๋ฉ ๋๋ค.
- UTF-8 ์ธ์ฝ๋ฉ ํ์ (8-bit ์ฝ๋ ์ ๋์ผ๋ก ๋ฌธ์์ด์ ์ธ์ฝ๋ฉ)
- UTF-16 ์ธ์ฝ๋ฉ ํ์ (16-bit ์ฝ๋ ์ ๋์ผ๋ก ๋ฌธ์์ด์ ์ธ์ฝ๋ฉ)
- UTF-32 ์ธ์ฝ๋ฉ ํ์ (32-bit ์ฝ๋ ์ ๋์ผ๋ก ๋ฌธ์์ด์ ์ธ์ฝ๋ฉ)
'Swift Language Guide' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Swift Language Guide] ํจ์(Functions) (0) | 2023.05.24 |
---|---|
[Swift Language Guide] ์ ์ดํ๋ฆ(Control Flow) (0) | 2023.05.24 |
[Swift Language Guide] ์ฝ๋ ์ ํ์ (Collection Types) (0) | 2023.05.24 |
[Swift Language Guide] ๊ธฐ๋ณธ ์ฐ์ฐ์ (Basic Operators) (0) | 2023.05.16 |
[Swift Language Guide] ๊ธฐ๋ณธ (The Basics) (0) | 2023.05.16 |