Kotlin 将字符添加到列表<;Char>;在科特林

Kotlin 将字符添加到列表<;Char>;在科特林,kotlin,collections,logic,Kotlin,Collections,Logic,我试图从Kotlin中的String创建List,但似乎lib没有提供内置函数。此外,强制转换也会产生错误。这就是我正在做的。如果我遗漏了什么问题,请告诉我。(或者我们可以说在Kotlin中将字符串转换为List) var stringVal=“ABC” var genList:List=arrayListof() 变量计数=0 while(stringVal.length==genList.size){ //将stringVal添加到genList的方法 计数++ } val chars=“A

我试图从Kotlin中的
String
创建
List
,但似乎lib没有提供内置函数。此外,强制转换也会产生错误。这就是我正在做的。如果我遗漏了什么问题,请告诉我。(或者我们可以说在Kotlin中将字符串转换为
List

var stringVal=“ABC”
var genList:List=arrayListof()
变量计数=0
while(stringVal.length==genList.size){
//将stringVal添加到genList的方法
计数++
}
val chars=“ABC”.toList()
CharSequence
具有中定义的
to(可变)列表
扩展函数

fun CharSequence.toList():列表
返回包含所有字符的
列表。
//

fun CharSequence.toMutableList():可变列表
返回一个
MutableList
,其中填充了此字符序列的所有字符。
//

Kotlin的标准库中有数百个这样的实用函数,所以大多数情况下,您想要的功能已经存在


许多标准类型在概念上对某种类型的iterable数据进行建模,但不是
iterable
,它们定义了与
kotlin中定义的数据等价的扩展。collections

这里@Moira给出的答案肯定是正确的,我接受它

然而,问题是向
列表
中添加一个元素,这在Kotlin中是不可能的,因为
列表
是不可变的,而您的列表被初始化为空的,因此它将保持为空

使用
MutableList
,如果需要,只需向其中添加
single
Char
s即可:

fun main(args:Array){
var genList=mutableListOf()
genList.add('a')
genList.add('A')
genList.add('B')
genList.add('C')
println(genList)
}
输出:

[a,a,B,C]

要点很好!次要挑剔/添加:分配给
genList
的值是
ArrayList
,因此是可变的;但是,由于它被分配给
List
类型的变量,因此任何变异操作都将不可用。顺便说一句,如果OP简单地省略了类型说明符,那么它就可以工作了:P@Moira这也是一个很好的观点!谢谢我可能会在稍后的回答中补充这一点。