Kotlin中CharArray如何初始化及使用?解决未初始化与类型不匹配问题
解决Kotlin中CharArray初始化及Array类型不匹配问题
我来帮你一步步捋清楚这两个问题的解决办法:
1. 正确初始化CharArray
Kotlin里所有var变量在被使用前必须完成初始化,你之前只声明了var str: CharArray的类型,但没给它分配内存空间,所以编译器才会提示错误。
看你的循环逻辑(要存入4个字符,从i到i+3共4个索引),最直接的方式是初始化一个固定大小的CharArray:
// 初始化大小为4的CharArray,默认元素是空字符'\u0000' var str = CharArray(4) var t = 0 for (k in i..i+3) { str[t++] = array[k][j] }
要是后续不确定字符数量,也可以先用可变列表收集字符,最后转成CharArray:
val charList = mutableListOf<Char>() for (k in i..i+3) { charList.add(array[k][j]) } val str = charList.toCharArray()
2. 修复Array<CharArray>的初始化错误
你写的arrayOf("India")生成的是Array<String>类型,但你需要的是Array<CharArray>,类型不匹配自然会报错。解决办法很简单:把字符串转换成CharArray后再放入arrayOf里:
// 将字符串"India"转为CharArray,再创建包含该元素的Array var array: Array<CharArray> = arrayOf("India".toCharArray())
如果需要初始化多个字符数组元素,比如多个字符串转成字符数组:
var array: Array<CharArray> = arrayOf( "India".toCharArray(), "China".toCharArray(), "Japan".toCharArray() )
内容的提问来源于stack exchange,提问作者Vikas Pandey
相关产品推荐
相关产品推荐

