>编写一个程序来读取一个单词并打印该单词中不存在的所有字母。 仅计算小写字母。
我以为它会从 a. 中删除你好。z,相反,它打印的是真的
val input = Scanner(System.`in`)
val inp = input.nextLine() //hello
val alp = mutableListOf('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z')
for (i in inp) {
if (i in alp) {
val a = alp.remove(i)
print(a)
}
}
MutableList.remove()
返回一个布尔值,指示是否有任何要删除的实例。而且您每次都在打印值。由于您正在迭代输入单词,因此您只能从循环中打印单词中的字母。要修复您的代码,您需要像这样修改它:
for (i in inp) {
alp.remove(i)
}
println(alp.joinToString(""))
但是在字母字符范围内使用filterNot
函数会更容易。
val alp = ('a'..'z').filterNot { it in inp }
println(alp.joinToString(""))
val notInWord = CharRange('a','z').run {
minus(input.asSequence())
}.also {
it.forEach { ch ->print(ch) }
}
以下是一些注意事项:
- 为所有小写字母创建
CharRanage
(相当于('a'..'z')
( - 将用户输入的
Minus
用作Sequence<Char>
以打开列表 包含原始集合的所有元素,但元素除外 包含在给定的序列中。 - 遍历
List
并使用also
作为最终块打印元素