我正在尝试创建一个在Kotlin中使用字符串的Android计算器。我的问题是如果它已经包含一个逗号(或否定),我该如何删除它。
以下是我的代码,它会正确添加逗号,但如果用户再次点击则不会将其删除:
if (!buClickValue.contains(".")) {
buClickValue += "."
} else {
buClickValue.replace(".", "")
}
}
或者这是我的Github
答案 0 :(得分:21)
replace()
方法用于在替换字符后返回新String
的值。在您的情况下,替换字符后获得的值永远不会重新分配回原始变量。
特别是在您的else子句中,该行应更改为 -
buClickValue = buClickValue.replace(".", "")
答案 1 :(得分:0)
更逻辑的技术不是替换而是过滤
buClickValue = buClickValue.filter { at == "." }
或扩展
filtered = ".,;:"
buClickValue = buClickValue.filter { filtered.indexOf(at) > -1 }