내 코드:
func solution(_ phone_number:String) -> String {
var result = String(repeating:"*",count:phone_number.count - 4)
var four = phone_number[phone_number.index(phone_number.endIndex,offsetBy:-4)...phone_number.index(before:phone_number.endIndex)]
return "\(result)\(four)"
}
위으 코드중에서,
phone_number[phone_number.index(phone_number.endIndex,offsetBy:-4)...phone_number.index(before:phone_number.endIndex)]
이 부분은 다음과 같이 쉽게 표현할 수 있다.
phone_number.suffix(4)
깨달은점:
1. prefix,suffix 를 통해 스트링 앞뒤 가져갈 수 있다.
2.
// var a = "123"
// a = a.replacingOccurrences(of: "1", with: "3")//inline 아니다.
3
var a = phone_number.enumerated().map{
$0.element
}
print(a)
phone_number가 string 이더라도 결과는 ["1",3"...] 로서 ARRAY로 출력된다는 사실. 따라서 다음과 같이 string()해줘야한다.
String(phone_number.enumerated().map{($0.offset<phone_number.count-4 ? Character("*") : $0.element)})