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

Android 从Kotlin中的字符串中删除字符,android,string,kotlin,Android,String,Kotlin,我正在尝试创建一个Android计算器,它使用Kotlin中的字符串。我的问题是,如果逗号(或负数)已经包含逗号,如何删除它 这是我的代码,它正确地添加了逗号,但如果用户再次单击,它不会删除逗号: if (!buClickValue.contains(".")) { buClickValue += "." } else { buClickValue.replace(".", "")

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

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

if (!buClickValue.contains(".")) {
                    buClickValue += "."
                } else {
                    buClickValue.replace(".", "")
                }
            }
或者这里是我的方法
replace()
用于在替换字符后返回新
字符串的值。在您的情况下,替换字符后获得的值永远不会重新分配回原始变量

特别是在else条款中,该行应改为-

buClickValue = buClickValue.replace(".", "")

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

buClickValue = buClickValue.filterNot { it == "."[0]) }
或延伸

filtered = ".,;:"

buClickValue = buClickValue.filterNot { filtered.indexOf(it) > -1 }

您说您正在尝试添加/删除逗号,但您的代码暗示您正在添加/删除点。对不起,我的错误。如果您查看代码,您可以看到如果字符串中没有“.”,则应将其添加到字符串中,但如果已经有了,则应将其删除。不清楚您在问什么。我的问题是如何删除“.”?//我在问题中添加了我的git,也许helpsReplace不是删除字符串中的字符或序列的好方法:使用filter代替replace非常感谢,这解决了我的问题并很好地解释了它!第一个示例不再编译。我添加了“.get(0)”这应该比接受的答案更可取。回答得好!