배경
- 문자열이 영어로만 이루어져 있는지 확인하기 위해서
isLetter
함수를 사용하면 놓칠 수 있는 문제점이 있다.
fun String.onlyAlphabetChars() = this.asSequence().all { it.isLetter() }
isLetter()
- 공식 문서를 확인해보면
isLetter()
은 문자 카테고리가 UPPERCASE_LETTER, LOWERCASE_LETTER, TITLECASE_LETTER, MODIFIER_LETTER, OTHER_LETTER 중 하나면true
를 반환한다. - 이런 UPPERCASE_LETTER, LOWERCASE_LETTER 등에는 단순 알파벳인 a-z, A-Z 뿐만 아니라 Ä, Ë 등도 카테고리에 포함된다.
- a-z, A-Z만 가능하게 만드려면 해당 함수를 사용하면 안된다.