์๋ ํ์ธ์~
์ค๋์ ๋ฌธ์์ด์ ๋ํด์
๋ ๊ฐ์ง๋ฅผ ์ ๋ฆฌํด ๋๊ณ ๊ฐ๋ ค๊ณ ํฉ๋๋ค : )
๋ฌธ์์ด์ ์๋ฅด๋ ๋ฐฉ๋ฒ
- string.index(string.startIndex, offsetBy: number)๋ฅผ ํ์ฉํ๊ธฐ
- ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ผ๋ก ์์ ์ธ๋ฑ์ค์ ๋ง์ง๋ง ์ธ๋ฑ์ค๋ฅผ ๊ฒฐ์ ํ๊ณ ํด๋น ๋ฌธ์์ด์ range๋ฅผ ์กฐ์ ํด ์๋ฅธ ๋ฌธ์์ด์ ์ป๋ ๋ฐฉ๋ฒ์ ๋๋ค.
var myString = "Hello, world!"
let startIndex = myString.index(myString.startIndex, offsetBy: 0)
let endIndex = myString.index(myString.startIndex, offsetBy: 5)
let output = myString[startIndex ..< endIndex]
print(output) // Hello
์์ ์ฝ๋๋ฅผ ํ์ฉํด์ extension์ ์ ์ฉํ๋ฉด
๋ค์๊ณผ ๊ฐ์ด ์ฌ์ฉํ ์๋ ์์ต๋๋ค.
extension String {
func subString(from: Int, to: Int) -> String {
guard from < count, to >= 0, to - from >= 0 else {
return "์๋ชป์
๋ ฅํ์
จ์ต๋๋ค~"
}
let startIndex = index(self.startIndex, offsetBy: from)
let endIndex = index(self.startIndex, offsetBy: to + 1)
return String(self[startIndex ..< endIndex])
}
}
print(myString.subString(from: 8, to: myString.count)) // world
ํด๋น ๋ฌธ์์ด์ด ์ซ์๋ก ๋ฐํ์ด ๊ฐ๋ฅํ์ง ํ์ธํ๊ธฐ
1. ํ๋ณํ
ํด๋น ๋ฌธ์์ด์ Int, Double ๋ฑ์ผ๋ก ๋ฐํ์ด ๊ฐ๋ฅํ์ง ํ์ธํด ๋ณด๋ ๋ฐฉ๋ฒ์ ๋๋ค.
extension String {
var isNumeric : Bool {
return Double(self) != nil
}
}
"1234".isNumeric // true
"1์๋
234".isNumeric // false
2. String์ rangeOfCharactert์ ์ด์ฉํ๋ ๋ฐฉ๋ฒ
extension String {
var isNumeric : Bool {
get{
return !self.isEmpty && self.rangeOfCharacter(from: NSCharacterSet.decimalDigits.inverted) == nil
}
}
}
์ ์ ์ ์ฝ๋๋ฅผ ์ดํด๋ณด๋ฉด
rangeOfCharacter๋ผ๋ ๋ฉ์๋๋ ChracterSet์ด๋ผ๋ ๋ฌธ์๋ค์ ์งํฉ์ ์ด์ฉํด์ ํด๋น ๋ฌธ์๊ฐ ํฌํจ๋ index๊ฐ ์๋ค๋ฉด ๋ฐํํ๊ณ ์๋ค๋ฉด nil์ ๋ฐํํด ์ฃผ๋ ๋ฉ์๋์ ๋๋ค
์์ ์ฝ๋๋ inverted๋ฅผ ์ด์ฉํด ์ซ์๋ง์ ํฌํจํ ๊ฒฝ์ฐ nil์ ๋ฐํํ๊ฒ ๋ฉ๋๋ค.
3. allSatisfy๋ฅผ ํ์ฉํ๋ ๋ฐฉ๋ฒ
let isAllNumeric = "123".allSatisfy {
$0.isNumber
}
print(isAllNumeric) // true
allSatisfy๋ ๊ฐ๊ฐ์ ์์๋ค์ ๋ชจ๋ ๊ฒ์ฌํ๊ณ
์กฐ๊ฑด์ด ์ถฉ์กฑ๋๋ฉด true ์ถฉ์กฑ๋์ง ์์ผ๋ฉด false๋ฅผ ๋ฐํํฉ๋๋ค.
'iOS > Swift' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Swift] GCD(Grand Central Dispatch)์ ๋ํด์ (0) | 2023.03.01 |
---|---|
[Swift] ์ ๊ท์์ ํตํ ๋ฌธ์์ด ํ๋จ (0) | 2022.11.14 |
[Swift] UITextField์์ Placeholder์ ์์ ๋ฐ๊พธ๊ธฐ (0) | 2022.11.10 |
[Swift] WebView์ ๋ฐฑ๊ทธ๋ผ์ด๋ ์ปฌ๋ฌ๋ฅผ Clear๋ก ๋ณ๊ฒฝ & Content Size ๊ฐ์ ธ์ค๋ ๋ฐฉ๋ฒ (0) | 2022.11.09 |
[ Swift ] UITableViewCell์ ๊ฐ๊ฒฉ์ ์ค์ ํ๋ ๋ฐฉ๋ฒ (1) | 2022.09.21 |