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

如何在Kotlin中将Assets的.txt文件转换为ArrayList<String>格式?

将Assets中的坐标字符串转为String数组/ArrayList

方法一:正则匹配(推荐,适配坐标含逗号的场景)

你的文本内容是多个"经度,纬度"格式的元素用逗号拼接而成,用正则表达式可以精准提取每个带引号的坐标单元,避免坐标里的逗号干扰分割逻辑:

// 先读取文件内容
val jsonString = application.assets.open(fileName).bufferedReader().use { it.readText() }

// 定义正则,匹配所有被双引号包裹的内容
val coordinatePattern = Regex("\"([^\"]+)\"")
// 提取所有匹配结果,转为List<String>
val coordinatesList: List<String> = coordinatePattern.findAll(jsonString)
    .map { it.groupValues[1] } // 这里拿到的是去掉引号的坐标,比如"97.95...,3.15..."变成97.95...,3.15...
    // 如果需要保留双引号,就把上面的map改成 it.value
    .toList()

// 转成ArrayList<String>的话:
val coordinatesArrayList = ArrayList(coordinatesList)

方法二:字符串分割(仅适用于无多余逗号的简单场景)

如果能确保文本里只有分隔元素的逗号,没有其他多余符号,可以用分割的方式快速处理:

val jsonString = application.assets.open(fileName).bufferedReader().use { it.readText() }

// 先清理字符串前后的空白,然后按"\",\""分割
val rawElements = jsonString.trim().split("\",\"")
// 处理首尾元素的引号,转成List
val coordinatesList = rawElements.map { it.removeSurrounding("\"") }.toList()

// 转ArrayList
val coordinatesArrayList = ArrayList(coordinatesList)

额外提示

如果你的txt文件是标准JSON数组格式(前后带[]),记得先去掉括号:

val cleanedString = jsonString.trim().removeSurrounding("[", "]")
// 再用上面的方法处理cleanedString

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 21:23:22