Kotlin中用户输入创建数组报错?[Ljava.lang.Character;错误解析
问题原因解析
1. 数组打印方式导致的格式输出
你看到的[Ljava.lang.Character;@3f91beef不是错误,而是Kotlin中引用类型数组(Array<Char>)的默认toString()输出。当直接打印数组对象时,JVM会返回数组的类型标识([Ljava.lang.Character;代表Character类型的一维数组)加上对象的哈希码后缀,这是对象默认的字符串表现形式,并非报错。
要正确打印数组内的元素,需要调用数组的contentToString()方法,它会将元素格式化为[元素1, 元素2, 元素3]的可读形式。
2. 代码中的冗余操作
你的代码存在一处冗余:readln().first().toChar(),first()方法已经返回Char类型,无需额外调用toChar()。另外,-1操作是将字符的ASCII码值减1后转回Char,比如输入'a'(ASCII 97)会变成ASCII 96对应的字符,若这不是你预期的逻辑,需要调整。
修正后的代码示例:
fun main() { val initArray = Array<Char>(3) { readln().first() - 1 } println(initArray.contentToString()) }
内容的提问来源于stack exchange,提问作者MELIH ERGUN
相关产品推荐
相关产品推荐

