Kotlin - 如何使用重载减号和 for 循环从 Word 中删除字母?

Kotlin - How to remove Letter from Word with Overloading Minus and for Loops?

编码朋友们好,

我在 Kotlin Challange 上工作了一个星期。 挑战是从单词中删除一个字母,但它必须带有“运算符重载”和“for”循环。 我已经用过滤器方法完成了它并且它有效但没有完成挑战。

我的程序 - 理论上我知道它可以完成但实践是另一个世界

operator fun String.minus(filter1: String): String {
    return filter1.minus("l")
}

fun main() {
    val wortHW1 = "Hallo"
    val wortHW2 = "Hallo World"
    for (x in wortHW1) {
        x.minus('l')
    }
}

我真的希望大家能帮助我,因为我已经卡了一个星期了。

谢谢你的努力

如果我理解正确并给出了要求,这就是您要查找的内容:

fun main() {
    val wortHW1 = "Hallo"
    val wortHW2 = "Hallo World"
    println(wortHW1.minus('l'))
    println(wortHW2.minus(' '))
}

operator fun String.minus(letterToRemove: Char): String {
    val lettersToKeep: MutableList<Char> = mutableListOf()
    for (letter in this) {
        if (letter != letterToRemove) {
            lettersToKeep.add(letter)
        }
    }

    return lettersToKeep.joinToString("")
}

buildString 函数是编写简洁的字符串操作代码的有用方法。例如:

operator fun String.minus(removedChar: Char): String = buildString {
    for (c in this@minus) {
        if (c != removedChar) append(c)
    }
}