diff --git a/src/main/kotlin/com/marvinelsen/chinese/transliteration/Syllable.kt b/src/main/kotlin/com/marvinelsen/chinese/transliteration/Syllable.kt index 4b99ba6..8a5df55 100644 --- a/src/main/kotlin/com/marvinelsen/chinese/transliteration/Syllable.kt +++ b/src/main/kotlin/com/marvinelsen/chinese/transliteration/Syllable.kt @@ -13,6 +13,9 @@ data class Syllable( private val zhuyinToPinyin = pinyinToZhuyin.entries.associate { it.value to it.key } private val zhuyinToneMarkRegex = """[ˊˇˋ˙]""".toRegex() + fun isValidPinyinWithToneNumberSyllable(pinyinSyllable: String) = + pinyinSyllable.last().isDigit() && pinyinSyllable.last().digitToInt() in 1..5 && pinyinSyllable.lowercase() in pinyinToZhuyin + fun fromPinyinWithToneNumber(pinyinWithToneNumber: String): Syllable { val pinyinWithoutNumber = pinyinWithToneNumber.substring(0, pinyinWithToneNumber.lastIndex) val lastCharacter = pinyinWithToneNumber.last() @@ -42,7 +45,7 @@ data class Syllable( return Syllable( zhuyinToPinyin[zhuyinWithoutToneMark]!!, Tone.fromZhuyinToneMarkOrNull(zhuyin.last()) ?: Tone.fromZhuyinToneMarkOrNull(zhuyin.first()) - ?: Tone.FIRST + ?: Tone.FIRST ) }