Kotlin中如何使用映射表替换单词字符生成目标单词?
问题解决思路
你的代码存在两个核心问题导致无法得到期望结果:
- 映射表
dictionary的键是String类型,但遍历字符串letters得到的是Char类型,类型不匹配导致无法正确匹配映射关系 - 每次循环单独打印每个字符的映射结果,会输出多行内容而非拼接成目标字符串
修正后的代码
fun main() { // 将映射表的键改为Char类型,与遍历字符串得到的字符类型匹配 val dictionary = mapOf('c' to 'b', 'a' to 'd', 'r' to 'e') val letters = "car" // 遍历字符并映射,拼接成目标字符串 val result = letters.map { dictionary[it] ?: it }.joinToString("") println(result) }
代码说明
- 把映射表的键从字符串(如
"c")改为字符(如'c'),确保遍历字符串得到的每个Char能正确匹配对应映射值 - 使用
map函数遍历每个字符,通过dictionary[it]获取映射值,?: it作为兜底逻辑:如果字符不在映射表中则保留原字符 - 用
joinToString("")将映射后的字符列表拼接成完整字符串,最后打印结果
运行这段代码后,输入单词"car"会输出期望的"bde"。
内容的提问来源于stack exchange,提问作者ahmed rafeq
相关产品推荐
相关产品推荐

