You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将文件读取的类列表字符转为Kotlin的mutableListOf<String>()?

解决方法:将类列表格式的字符串转换为MutableList

这问题我太熟悉了!你现在读取到的list其实是一整个字符串,而不是Kotlin的List对象——文件里的[aaa, aah, aal...]只是文本格式,不是代码层面的列表,所以直接按索引访问才会拿到[和a这种单个字符。

下面给你几个直接可行的转换方法:

方法一:字符串解析(最推荐,无额外依赖)

利用字符串处理工具,先清理掉首尾的方括号,再按分隔符分割成单词列表,最后转成MutableList:

import java.io.File

fun main() {
    val fileContent = File("src/resources/words_threeLetters.txt").readText()
    val wordList: MutableList<String> = fileContent
        .trimStart('[') // 移除开头的`[`
        .trimEnd(']')   // 移除结尾的`]`
        .split(", ")    // 按`, `(逗号加空格)分割成普通List<String>
        .toMutableList()// 转换为MutableList<String>
    
    // 测试一下:现在wordList[0]就是"aaa"了
    println(wordList[0]) // 输出:aaa
}

⚠️ 注意:这个方法要求文件里的格式严格是[单词1, 单词2, 单词3...]——也就是单词之间必须是逗号加空格分隔,没有多余的引号或其他符号。如果格式有细微差别(比如逗号后没有空格),只需要调整分割逻辑,给每个元素做个修剪:

.split(",")
.map { it.trim() }
.toMutableList()

方法二:利用Kotlin脚本引擎(适合复杂格式)

如果文件内容是标准的Kotlin列表字面量,也可以用脚本引擎直接解析成List对象,不过需要额外配置依赖,适合格式不确定的场景:

import java.io.File
import kotlin.script.experimental.api.EvaluationResult
import kotlin.script.experimental.api.ScriptEvaluationConfiguration
import kotlin.script.experimental.api.implicitReceivers
import kotlin.script.experimental.host.toScriptSource
import kotlin.script.experimental.jvm.JvmScriptCompiler
import kotlin.script.experimental.jvmhost.BasicJvmScriptingHost

fun main() {
    val fileContent = File("src/resources/words_threeLetters.txt").readText()
    val host = BasicJvmScriptingHost()
    val result = host.eval(
        fileContent.toScriptSource(),
        ScriptEvaluationConfiguration {
            implicitReceivers.add(this)
        }
    )
    val wordList = (result as EvaluationResult.Success).returnValue as List<String>
    val mutableWordList = wordList.toMutableList()
    
    println(mutableWordList[0]) // 输出:aaa
}

不过这个方法相对重,一般日常场景用方法一就足够了。

为什么你之前的尝试失败?

你之前直接把读取到的字符串赋值给mutableListOf<String>或者mutableListOf<Char>,本质是没有对这个类列表格式的文本进行解析——你只是把整个文本当成了单个元素(或者拆成了单个字符),而不是把里面的单词提取出来作为列表元素。

内容的提问来源于stack exchange,提问作者grahfly

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 08:17:43