반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- for-in
- CoreLocation
- entrypoint
- 진입점
- UIButton
- IBOutletCollection
- uikit
- TableView
- Understanding Swift Performance
- SWiFT
- firebase
- 후행 클로저
- Remot Push
- AppTransportSecurity
- WWDC16
- RunLoop
- Choosing Between Structures and Classes
- weak
- 동시성프로그래밍
- ios
- userdefaults
- OperationQueue
- 연산 프로퍼티
- IBOutlet
- tableViewCell
- DispatchQueue
- 트레일링 클로저
- 원격 푸시
- property wrapper
- viewcontroller
Archives
- Today
- Total
iOS 공부하는 감자
문자열 다루기 본문
반응형
문자열 이어 붙이기
- + 연산자
- appending : 피연산자에 문자열을 이어 붙여서 새로운 문자열을 생성
- append : 피연산 문자열에 직접 문자열을 추가
appending 메서드는 피연산 값이 변경되지 않으므로 side-effect가 없고,
append는 피연산 값이 직접 변경되기 때문에 side-effect가 발생한다.
문자열의 특정 index 부분 가져오기
let someString: String = "abcdef"
let n: Int = 3
// 1. String.Index를 통해 가져오기
let index: String.Index = someString.index(someString.startIndex, offsetBy: 3)
//let result: Character = someString[index] // d
// 2. 문자열을 배열로 만든 후 가져오기
let stringToArray: [String.Element] = Array(someString)
let resul: String.Element = stringToArray[n] // d
String.Index 사용하여 문자열 자르기
- 기준을 잡을 Index를 구한다.
- String(문자열[자를 범위])
-
let someString: String = "abcdefg" // startIndex부터 3만큼 떨어진 index let index: String.Index = someString.index(someString.startIndex, offsetBy: 3) // let result: String.SubSequence = someString[index...] // "defg" let result: String = String(someString[index...]) // "defg"
문자열의 특정 부분을 Range<String.Index> 형태로 가져와서 사용하기
let someString: String = "abcdef"
// Range타입의 lowerBound는 하한선, upperBound는 상한선을 의미
if let range: Range<String.Index> = someString.range(of: "cd") {
let someSubString: String.SubSequence = someString[..<range.lowerBound]
print(someSubString) // "ab"
}
if let range: Range<String.Index> = someString.range(of: "cd") {
let someSubString: String.SubSequence = someString[..<range.upperBound]
print(someSubString) // "abcd"
}
문자열에서 숫자만 뽑아서 배열로 사용(저장)하기
// 문자열에서 숫자만 뽑아서 저장하기
//let string = "0kaksd020dk2kfj2123"
let someString = "0kaksd020dk2kfj2123"
var result: [Int] = []
// String 타입의 숫자와 공백이 있는 배열 생성
let numStringArray: [String] = someString.components(separatedBy: CharacterSet.decimalDigits.inverted)
// 생성된 배열을 forEach로 순환하며 옵셔널 바인딩을 통해 nil값 제거하고 append
numStringArray.forEach({
if let number = Int(String($0)) {
result.append(number)
}
})
print(numStringArray) // ["0", "", "", "", "", "020", "", "2", "", "", "2123"]
print(result) // [0, 20, 2, 2123]
문자열에 포함된 숫자 제거하기
let someString: String = "0kaksd020dk2kfj2123"
// 문자열과 공백으로 이루어진 숫자 제거된 배열
let stringArray: [String] = someString.components(separatedBy: CharacterSet.decimalDigits)
// 숫자를 제거한 문자열
let result: String = stringArray.joined(separator: "")
print(stringArray) // ["", "kaksd", "", "", "dk", "kfj", "", "", "", ""]
print(result) // kaksddkkfj
문자열을 숫자 기준으로 분리하여 배열로 받기
let someString: String = "12adb34adf43fad"
let result: [String.SubSequence] = someString.split(whereSeparator: {$0.isNumber})
print(result) // ["adb", "adf", "fad"]
(숫자가 포함된) 문자열을 문자 기준으로 분리하여 배열로 받기
let someString: String = "12adb34adf43fad"
let result: [String.SubSequence] = someString.split(whereSeparator: {$0.isLetter})
print(result) // ["12", "34", "43"]
Character 또는 String.Element 에서 사용 가능한 메서드
- isASCII : ASCII 문자인지 확인하는 메서드
-
let someChar: Character = "A" someChar.isASCII // true
- asciiValue : ASCII값을 반환, 반환 타입이 Optional (아스키 값이 없는 경우 nil 반환)
-
let someChar: Character = "A" someChar.asciiValue // Optional(65)
- isWhitespace : 공백이나 다른 분리하는 문자인지 확인 👉 "\t"(탭), "\n"(줄바꿈) 등..
-
let someSpace: Character = " " let someTab: Character = "\t" let someNewLine: Character = "\n" someSpace.isWhitespace // true someTab.isWhitespace // true someNewLine.isWhitespace // true
- isLetter : 문자인지 확인
-
let someChar: Character = "a" let someInt: Character = "1" someChar.isLetter // true someInt.isLetter // false
- isNumber : 숫자인지 확인
-
let someChar: Character = "a" let someInt: Character = "1" someChar.isNumber // false someInt.isNumber // true
- wholeNumberValue : 정수인지 확인하고, 정수인 경우 Optional Int 타입으로 반환
-
let someChar: Character = "1" someChar.wholeNumberValue // Optional(1)
- isSymbol : 심벌인지 확인
-
let someChar: Character = "👍" someChar.isSymbol // true someChar.isLetter // false
- isMathSymbol : 수학 기호 심볼인지 확인
-
let mathSymbol: Character = "+" let someSymbol: Character = "👍" mathSymbol.isMathSymbol // true someSymbol.isMathSymbol // false
- isLowercase, isUppercase : 소문자, 대문자인지 확인
-
let someLower: Character = "a" let someUpper: Character = "A" someLower.isLowercase // true someUpper.isUppercase // true
반응형
'Swift' 카테고리의 다른 글
Swift) Choosing Between Structures and Classes (0) | 2023.01.30 |
---|---|
Operation, OperationQueue (feat. GCD) (0) | 2022.12.28 |
Swift) Property Wrapper (0) | 2022.07.20 |
split() vs components() (0) | 2022.06.04 |