iOS/Swift
[Swift] 한글 종성받침 유무에 따라 '을/를' 반환하기
min_ee
2018. 12. 13. 16:08
한글 유니코드 값
초성: ((한글 유니코드 값 - 0xAC00 / 28) / 21)
중성: ((한글 유니코드 값 - 0xAC00 / 28) % 21)
종성: (한글 유니코드 값 - 0xAC00 % 28)
func postPositionText(_ name: String) -> String {
// 글자의 마지막 부분을 가져옴
guard let lastText = name.last else { return name }
// 유니코드 전환
let unicodeVal = UnicodeScalar(String(lastText))?.value
guard let value = unicodeVal else { return name }
// 한글아니면 반환
if (value < 0xAC00 || value > 0xD7A3) { return name }
// 종성인지 확인
let last = (value - 0xAC00) % 28
// 받침있으면 을 없으면 를 반환
let str = last > 0 ? "을" : "를"
return name + str
}
0 이상이면 받침이 있음, 아니면 받침이 없음!