実践
正規表現を使用して全角と半角を判定します。
private val HALF_WIDTH_PATTERN = Regex("[a-zA-Z0-9ヲ-゚]")
private fun getPrintableLength(str: String): Int {
var width = 0
for (c in str) {
val s = c.toString()
// Regex.matcher -> Regex.matches に変更
width += if (HALF_WIDTH_PATTERN.matches(s)) {
1 // 半角
} else {
2 // 全角
}
}
return width
}