728x90
240221_2
240315
Replacing Substrings 문자열 교체
var str = " Hello, Objective-C"
if let range = str.range(of: "Objective-C") {
str.replaceSubrange(range, with: "Swift")
}
str
if let range = str.range(of: "Hello") {
let s = str.replacingCharacters(in: range, with: "hi")
s
}
Q: if let 은 옵셔널 바인딩 하는건데 왜 언랩핑을 하는거지?
더 간단한 방법
replacingOccurrences(of: , with: )
대상 문자열에서 첫번째 파라미터로 전달한 문자열을 검색하고 두번째 파라미터로 전달한 문자열로 바꿔준다
var s = str.replacingOccurrences(of: "Swift", with: "Awesome Swift")
//대소문자를 구분 한다. 대소문자 구분 없이 하려면 파라미터에 options: [.caseInsensitive] 추가
s = str.replacingOccurrences(of: "Swift", with: "Awesome Swift", options: [.caseInsensitive])
Removing Substrings 문자열 삭제
var str = "Hello, Awesome Swift!!!"
let lastCharIndex = str.index(before: str.endIndex)
//remove(at:) 삭제한 문자 리턴
var removed = str.remove(at: lastCharIndex)
removed
str
//removeFirst 첫번째 문자를 삭제하고, 삭제한 문자를 리턴해준다
removed = str.removeFirst()
removed
str
원본을 변경하여 리턴한다.
여러개의 문자 한번에 삭제하기
removeFirst : 앞에서부터 삭제함
removeFirst의 파라미터에 숫자를 전달하면 첫번째부터 숫자만큼 문자가 삭제된다.
리턴되지 않기 때문에 removed 에 담아놓으면 오류가 뜬다
예제코드
str.removeFirst(2)
str
앞에 변수를 지우고 값을 호출하니 정상적으로 지워짐
removeLast : 뒤에서부터 삭제함
예제코드
str.removeLast()
str
str.removeLast(2)
str
뒤 문자가 삭제 된 걸 볼 수 있음
원하는 부분 삭제하기
if let range = str.range(of: "Awesome") {
str.removeSubrange(range)
str
}
range(of:) 로 Awesome 의 범위를 구하고
removeSubrange() 로 지정한 범위를 삭제 한다
모든 문자열 삭제하기
removeAll() 모든 문자열을 삭제하고 빈 문자열로 만든다
str.removeAll()
파라미터를 비워놓으면 메모리 공간도 삭제 된다.
메모리 남기기 keepingCapacity
str.removeAll(keepingCapacity: true)
삭제된 문자 제외하고 나머지 보기
원하는 문자를 삭제하고 남겨져 있는 문자열만 보고 싶다면 drop 을 사용하면 된다
dropLast: 뒤에서부터 삭제하고 나머지 리턴
dropFirst: 앞에서부터 삭제하고 나머지 리턴
원하는 부분만 공유하는 것이기 때문에 원본은 바뀌지 않는다
var substr = str.dropLast()
str
substr = str.dropLast(3)
str
substr = str.dropFirst()
str
substr = str.dropFirst(7)
str
substr = str.drop { $0 != ","} //첫번째 콤마부터 나머지가 리턴 됨
substr
이건 클로저를 잘 몰라서 넘어가는 걸로,,, 담에 다시 공부해주께!
728x90
'iOS Swift > 문법' 카테고리의 다른 글
[Swift] Array (0) | 2024.02.22 |
---|---|
[Swift] String Comparison & Searching (0) | 2024.02.21 |
[Swift] Optionals (0) | 2024.02.21 |
[Swift] String Editing #1 (0) | 2024.02.21 |
[Swift] String Basics (0) | 2024.02.21 |
댓글