List 当我尝试将字符列表转换为整数列表时,值会发生变化。我该如何解决这个问题?

List 当我尝试将字符列表转换为整数列表时,值会发生变化。我该如何解决这个问题?,list,kotlin,type-conversion,List,Kotlin,Type Conversion,它打印出每个字符的ascii值,而不是字符串表示形式 看 这是这些数字的字符代码点。您需要强制转换为一个整数才能获得它们的数字表示形式,或者解析它们,这取决于java的操作方式。@LasseVågsætherKarlsenchar是一个代码单元,而不是一个代码点。这种差异会在UTF-16需要两个代码单元的代码点上表现出来。示例:55是数字7的代码点,与其他所有数字相同。我对那个角色了如指掌!=代码点,但在本例中,55代表7,51代表3,等等。所以我可以从每个整数中减去48来得到正确的值吗?更容易

它打印出每个字符的ascii值,而不是字符串表示形式


这是这些数字的字符代码点。您需要强制转换为一个整数才能获得它们的数字表示形式,或者解析它们,这取决于java的操作方式。@LasseVågsætherKarlsen
char
是一个代码单元,而不是一个代码点。这种差异会在UTF-16需要两个代码单元的代码点上表现出来。示例:55是数字7的代码点,与其他所有数字相同。我对那个角色了如指掌!=代码点,但在本例中,55代表7,51代表3,等等。所以我可以从每个整数中减去48来得到正确的值吗?更容易使用String.toInt,如上所述
fun main(args: Array<String>) {

    val list = arrayListOf<Char>()
    val string: String = "731671765313306249192251196744265747423553491"
        loop@ for (char in string) {
            list.add(char)
            if (list.size == 13) {
                break@loop
            }
        }
    val trueList = list.map { it.toInt() }
    println(list)
    println(trueList)
}
[7, 3, 1, 6, 7, 1, 7, 6, 5, 3, 1, 3, 3] // List of the characters
[55, 51, 49, 54, 55, 49, 55, 54, 53, 51, 49, 51, 51] // List of integers
var list = string.chunked(1).map { it.toInt() }