从Kotlin中的字符串中删除字符

Mar*_*del 17 string android kotlin

我正在尝试创建一个在Kotlin中使用字符串的Android计算器.我的问题是如果它已经包含一个逗号(或否定),我该如何删除它.

这是我的代码,它正确添加逗号,但如果用户再次点击则不会删除它:

if (!buClickValue.contains(".")) {
                    buClickValue += "."
                } else {
                    buClickValue.replace(".", "")
                }
            }
Run Code Online (Sandbox Code Playgroud)

或者这是我的Github

Ame*_*war 27

replace()方法旨在String在替换字符后返回new的值.在您的情况下,替换字符后获得的值永远不会重新分配回原始变量.

特别是在你的else子句中,该行应更改为 -

buClickValue = buClickValue.replace(".", "")
Run Code Online (Sandbox Code Playgroud)


Luc*_*ier 10

更合乎逻辑的技术不是更换而是过滤

buClickValue = buClickValue.filterNot { it == "."[0]) }
Run Code Online (Sandbox Code Playgroud)

或者延长

filtered = ".,;:"

buClickValue = buClickValue.filterNot { filtered.indexOf(it) > -1 }
Run Code Online (Sandbox Code Playgroud)

  • 第一个例子不再编译。我添加了“.get(0)” (2认同)