본문 바로가기
iOS Swift/문법

[Swift] String Editing #2

by 야고이 2024. 2. 21.
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

댓글