빠르게 코드만 보고 싶은 분들을 위해 코드 먼저 올릴께요!
import UIKit
/* 특정 문자열을 제거하는 방법 */
// Test Case
// 1: 하나도 없는 순수 텍스트만 있는 경우
let subtitle01 = "Controller에 객체를 추가해주세요."
// 2: # 하나 있는 경우
let subtitle02 = "빠르게 완성본을 만들고 싶다면, <font color=\"#ff8000\">#SwiftUI</font>를 공부해야하죠."
// 3: 글자색 변경만 있는 경우
let subtitle03 = "Swift를 공부하기 전에 <font color=\"#ffff00\">영어</font>를 잘해야하요."
// 4: #가 하나 있고, 글자색 변경 하나 있는 경우
var subtitle04 = "이제 <font color=\"#ffff00\">우리가</font> <font color=\"#ff8000\">#스위프트U</font><font color=\"#ffff00\">를 배우는 최종적인 목적이 어떤 </font><font color=\"#ff8000\">#앱</font><font color=\"#ffff00\">구현하는 것을 배울 예정인데</font>"
// 5: #만 2 개 있는 경우
var subtitle05 = "<font color=\"#ff8000\">#문법</font>을 생각하시는 거죠. 물론 <font color=\"#ff8000\">#문법</font>을 잘하면"
// 6: #가 4 개 있는 경우
var subtitle06 = "코딩하는 것들 이 많이 쉬워집니다.<font color=\"#ff8000\"> #구현</font>, <font color=\"#ff8000\">#리펙토링</font>, <font color=\"#ff8000\">#검증</font>, <font color=\"#ff8000\">#검증결과</font>를 좀 더 능숙하게 구할 수 있겠죠."
// 1차 필터링: <font color=\"#ffff00\">
let splitResult01 = subtitle06.replacingOccurrences(of: "<font color=\"#ffff00\">", with: "")
print(splitResult01)
// 2차 필터링: </font>
let splitResult02 = splitResult01.replacingOccurrences(of: "</font>", with: "")
print(splitResult02)
// 3차 필터링: </font>
let splitResult03 = splitResult02.replacingOccurrences(of: "<font color=\"#ff8000\">", with: "")
print(splitResult03)
라는 태그가 함께 넘어오는 자막을 필터링해야하는 상황이엿습니다. font의 글자도 2 종류입니다.
그래서 그 2 값을 제거하고 태그 종료 인 도 제거했습니다.
테스트 케이스를 통해서 그 당시 발생할 수 있는 경우의 수를 고려했습니다.
이 코드를 사용하시게 된다면, 테스트 케이스에 원하는 케이스를 넣고 테스트 해보신 후에, 본 프로젝트에 적용하는 것을 추천합니다. (제가 테스트를 몇 가지 빼먹었다가 애먹었던 적이 있어서요.TT)
of 내부에 있는 String을 제거한 String을 반환합니다. 제거할 때, with에 있는 String으로 변환합니다.
func replacingOccurrences(of target: String,
with replacement: String) -> String
target
삭제하고 싶은 스트링입니다.
replacement
삭제한 후, 대체할 스트링입니다.
replacingOccurrences(of:with:options:range:)
이 메소드에서 options와 range를 삭제한 메소드입니다.