String을 특정 문자를 기준으로 분리하는 메서드로는 대표적으로 split()
과 components()
가 있습니다
일반적으로 편리한 component를 자주 사용하게 되는데, components 메서드를 사용할 때는 몇 가지 주의사항이 필요한 경우가 있습니다
let target = "ABCD"
print(target.components(separatedBy: ["A"]))
// print ["", "BCD"]
separator로 지정한 문자가 target String의 양 끝단에 있을 경우,
위 예제와 같이 빈 문자열이 요소로 포함됩니다
let target1 = "ABBC"
print(target1.components(separatedBy: ["B"]))
// print ["A", "", "C"]
let target2 = "DEFG"
print(target2.components(separatedBy: ["E","F"]))
// print ["D", "", "G"]
separator로 지정한 문자가 target String 내에서 연달아 있을 경우,
이전 케이스와 마찬가지로 빈 문자열이 요소로 포함되게 됩니다
components를 편하게 쓰기에는, 위 두 가지 경우가 너무 흔한 케이스이기에
일단은 String으로 mapping을 추가적으로 해주더라도 split같은게 속편할 듯 하다
components를 활용할 방법을 찾아보자