[Swift] ์์ฃผ ์ฌ์ฉํ๋ ์ฝ๋ฉํ ์คํธ ๊ฐ๋ ๋ชจ์_๋ฌธ์์ด
๋ฌธ์์ด ์ธ๋ฑ์ค๋ ์ ์๊ฐ ์๋๋ค. ๋ฌธ์์ด ์ธ๋ฑ์ค๋ String.Index๋ผ๋ ํน๋ณํ ์ธ๋ฑ์ค ํ์ ์ ๊ฐ์ง๊ณ ์๋ค.
let str = "jihyeon"
//ํน์ ๋ฌธ์์ ์ ๊ทผํ ๋๋ ์๋ธ์คํฌ๋ฆฝํธ ๋ฌธ๋ฒ์ผ๋ก ์ ๊ทผ
//์ฒซ๋ฒ์งธ ๋ฌธ์ ์ถ๋ ฅ
let first = str[str.startIndex]
print(first) //์ถ๋ ฅ : j
//๋ง์ง๋ง ๋ฌธ์ ์ถ๋ ฅ
let lastIndex = str.index(before: str.endIndex) //str.endIndex๋ ๋ง์ง๋ง ์ธ๋ฑ์ค ๋ค์ ์ธ๋ฑ์ค
let last = str[lastIndex]
print(last) //์ถ๋ ฅ : n
//์ธ๋ฒ์ฌ ๋ฌธ์ ์ถ๋ ฅ
let thirdIndex = str.index(str.startIndex, offsetBy: 2) // (String.Index , Int)
let third = str[thirdIndex]
print(third) //์ถ๋ ฅ : h
//๋ค๋ฒ์งธ ๋ฌธ์ ์ถ๋ ฅ(๋ค์์๋ถํฐ ์ ๊ทผ)
let fourthIndex = str.index(str.endIndex, offsetBy: -4)
let fourth = str[fourthIndex]
print(fourth)
//๐ ๋จ์ด ๊ฐฌ์ : contains()
//โ
Character๋ฅผ ๋ฐ์ง๋ง StringProtocol, ํด๋ก์ ๋ฅผ ๋ฐ๋ ๋ฉ์๋๋ ์กด์ฌํ๊ธฐ ๋๋ฌธ์
//ํ๋ผ๋ฏธํฐ๋ก ๋ฌธ์/๋ฌธ์์ด ์ ๋ฌ ๊ฐ๋ฅ -> retrun true/false
"hello".contains("he") //์ถ๋ ฅ : true
[1, 2, 3].contains(5) //์ถ๋ ฅ : false
//โ
๋ฌธ์์ด์ ๋์๋ฌธ์ ๊ตฌ๋ถ
var str = "Hello, Swift"
str.contains("swift") //์ถ๋ ฅ : false
str.lowercased().contains("swift") //์ถ๋ ฅ : true -> ๋น๊ต๋์์ ์ผ์ด์ค๋ฅผ ์ผ์น์ํจ ํ ๋น๊ต ๊ฐ๋ฅ
//๐ ๋ฒ์ ๊ฐฌ์ : range(of: )
str.range(of: "swift", options: [.caseInsensitive])
let str = "Swift"
str == "Apple" //์ถ๋ ฅ : false
"apple" != "Apple" //์ถ๋ ฅ : true ๋์๋ฌธ์ ๊ตฌ๋ถ.
let str = "Hello Swift"
str.count //์ถ๋ ฅ : 11 (๊ณต๋ฐฑ๊น์ง ์นด์ดํ
)
str.isEmpty //๋น์ด ์๋์ง ํ์ธ. ์ถ๋ ฅ : false
๐ .startIndex
var str = "ahnzihyeon"
str.startIndex
//์ฒซ ๋ฒ์งธ ๊ธ์์ ์ ๊ทผ
str[str.startIndex] //์ถ๋ ฅ: "a"
๐ .endIndex
str[str.endIndex] //๋งจ ๋ง์ง๋ง ๋ค์ Index
๐ .index(before:)
//๋ง์ง๋ง ๊ธ์์ ์ ๊ทผ
str[str.index(before: str.endIndex)] //์ถ๋ ฅ: "n"
๐ .index(์์, offsetBy: Int)
//ํน์ ์์น์ ๊ธ์์ ์ ๊ทผ
str.index(str.startIndex, offsetBy: 3) //(์์ ์ง์ , ๋จ์ด์ง ๊ธธ์ด)
str[str.index(str.startIndex, offsetBy: 3)] //์ถ๋ ฅ: "z"
โ Swift String์์๋ ์ธ๋ฑ์ค๋ก Int๊ฐ ์๋
-> return String.Index
โ ํ๋ผ๋ฏธํฐ๋ก ์ ๋ฌํ ๋ฌธ์์ Index ๋ฆฌํด
let text = "one,two;three four"
//components(separatedBy:)
//๊ตฌ๋ถ์ ํ์
: ๋จ์ผ ๋ฌธ์, ๋ฌธ์์ด(String) ๋๋ ๋ฌธ์์ด ๋ฐฐ์ด([String])
let strArr = text.components(separatedBy: [",", ";", " "])
print(strArr) // ["one", "two", "three", "four"]
//split(separator: )
//๊ตฌ๋ถ์ ํ์
: ๋ฌธ์(Character)
let text = "one,two,three"
let parts = text.split(separator: ",")
print(parts) // ["one", "two", "three"]
for part in parts {
print(part) // ๊ฐ๊ฐ์ ์์๋ Substring
}
// Substring์ String์ผ๋ก ๋ณํ
let strParts = parts.map { String($0) }
print(strParts) // ["one", "two", "three"]
https://dkswlgus0314.tistory.com/167
var name = "aHnzIhYeoN"
var cha: Character = "a"
//์๋ฌธ์๋ก ๋ณํ
name.lowercased() //์ถ๋ ฅ: "ahnzihyeon"
cha.isLowercase //์ถ๋ ฅ: true
//๐จ isLowercase๋ Character์ด์ด์ผ ํ๋ค!!!!
//๋๋ฌธ์๋ก ๋ณํ
name.uppercased() //์ถ๋ ฅ: "AHNZIHYEON"
cha.isUppercase //์ถ๋ ฅ: false
//ing/ed๊ฐ ๋ถ์ด ์์ผ๋ฉด ์๋ก์ด ๊ฐ์ ๋ฆฌํด, ์์ผ๋ฉด ์๋ณธ์ ํธ์ง
var str = "Hello, Swift"
//1. replaceSubrange(<#T##subrange: Range<String.Index>##Range<String.Index>#>, with: <#T##Collection#>)
if let range = str.range(of: "Swift") { //ํ๋ผ๋ฏธํฐ๋ก ์ ๋ฌํ ๋ฌธ์์ด์ ๊ฒ์ํด์ ๋ฒ์๋ฅผ ๋ฆฌํด, ๊ฒ์ ๊ฒฐ๊ณผ๊ฐ ์์ผ๋ฉด nil ๋ฆฌํด
str.replaceSubrange(range, with: "Apple")
}
print(str) // ์ถ๋ ฅ : Hello, Apple
//2. replacingCharacters(in: <#T##RangeExpression#>, with: <#T##StringProtocol#>)
if let range = str.range(of: "Hello") {
let s = str.replacingCharacters(in: range, with: "Hi") //(๋ฒ์, ๋ฐ๊ฟ ๋ฌธ์์ด)
print(s) //์ถ๋ ฅ : Hi, Apple
}
print(str) //์ถ๋ ฅ : Hello, Apple. -> ing๊ฐ ๋ถ์ผ๋ฉด ์๋ณธ์ ๋ฐ๊พธ์ง ์์
//3. replacingOccurrences(of: <#T##StringProtocol#>, with: <#T##StringProtocol#>)
var s = str.replacingOccurrences(of: "Apple", with: "Smart Swift") //Swift๋ผ๋ ๋ฌธ์์ด์ด ํฌํจ๋์ด ์์ผ๋ฉด With์ ๋ฌธ์์ด๋ก ๋ณํ
print(s) //์ถ๋ ฅ : Hello, Smart Swift
//4. ๋์๋ฌธ์ ๋ฌด์ ์ต์
s = str.replacingOccurrences(of: "apple", with: "Awesome Swift", options: [.caseInsensitive]) //๋ฌธ์์ด์ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํ๊ธฐ ๋๋ฌธ์ ๋ฌด์ํ๊ณ ์ถ์ผ๋ฉด options ํ๋ผ๋ฏธํฐ ์ถ๊ฐ
print(s) //์ถ๋ ฅ : Hello, Awesome Swift
๐ components(separatedBy:[" "])
//์ฌ์ฉํ๋ฉด ํน์ ๋ฌธ์๋ฅผ ์ ๊ฑฐํ ๋ถํ ๋ ๋ฐฐ์ด์ ๋ฆฌํด
var str = "bus"
str.components(separatedBy:["u"]) //์ถ๋ ฅ : ["b", "s"]
๋ฌธ์์ด์์๋ ์ซ์์ ๊ฐ์ ํฌ๊ธฐ์ ๊ฐ๋ ์ด ์๊ธฐ ๋๋ฌธ์ ๋ฌธ์์ ์์๋ฅผ ๋น๊ตํ๋ค.
๊ฐ ๋ฌธ์๋ง๋ค ๊ณ ์ ์ ์ซ์๊ฐ ์ฐ๊ฒฐ๋์ด ์๋๋ฐ ์ด ์ซ์๋ค์ ๋น๊ตํ๋ ๊ฒ.
let str = "Swift"
str == "Apple" //์ถ๋ ฅ : false
"apple" != "Apple" //์ถ๋ ฅ : true ๋์๋ฌธ์ ๊ตฌ๋ถ.
//๋ญ์์ ํ ๋น๋ ์ฝ๋์ ํฌ๊ธฐ๋ฅผ ๋น๊ตํ๋ค.
//์์คํค ์ฝ๋
("A" as Character).asciiValue //์ถ๋ ฅ : 65
("a" as Character).asciiValue //์ถ๋ ฅ : 97
("B" as Character).asciiValue //์ถ๋ ฅ : 66
"apple" < "Apple" //์ถ๋ ฅ : false
"apple" < "Banana" //์ถ๋ ฅ : false
//๋ฌธ์์ด ๋ฐ๋ณต
let repeatStr = String(repeating: "์ค์!", count: 3) //์ถ๋ ฅ :์ค์!์ค์!์ค์!
print(repeatStr)
let strNum = "1234657890"
strNum.randomElement() //๋๋ค์ผ๋ก ํ๋ ๋ฝ๊ธฐ. ์ถ๋ ฅ : Optional("2")
strNum.shuffled() //์ถ๋ ฅ :["4", "7", "3", "9", "2", "1", "0", "8", "6", "5"]
String(strNum.shuffled()) //์ถ๋ ฅ : "2416087539"
[Swift] ์์ฃผ ์ฌ์ฉํ๋ ์ฝ๋ฉํ ์คํธ ๊ธฐ์ด ์ํ ๊ฐ๋ (0) | 2024.06.05 |
---|---|
[Swift] ์์ฃผ ์ฌ์ฉํ๋ ์ฝ๋ฉํ ์คํธ ๊ฐ๋ ๋ชจ์_๋ฐฐ์ด (0) | 2024.05.05 |