【发布时间】:2018-05-10 07:20:21
【问题描述】:
如何替换kotlin字符串中的多个字符?
类似于 java replaceAll() 函数。
str.replaceAll("[$,.]", "") //java code
我知道this 答案很接近但想同时更改多个字符
【问题讨论】:
如何替换kotlin字符串中的多个字符?
类似于 java replaceAll() 函数。
str.replaceAll("[$,.]", "") //java code
我知道this 答案很接近但想同时更改多个字符
【问题讨论】:
[$,.] 是正则表达式,它是 Java 的 replaceAll() 方法的预期输入。然而,Kotlin 有一个名为 Regex 的类,string.replace() 被重载以接受 String 或 Regex 参数。
所以你必须显式调用.toRegex(),否则它认为你想替换字符串文字[$,.]。还值得一提的是 Kotlin 中的 $ 与字符串模板一起使用,这意味着在常规字符串中您必须使用反斜杠对其进行转义。 Kotlin 支持原始字符串(由三个 " 标记,而不是一个),不需要对这些字符串进行转义,这意味着您可以这样做:
str = str.replace("""[$,.]""".toRegex(), "")
一般来说,您需要一个 Regex 对象。除了使用toRegex()(可能是也可能不是语法糖),您还可以使用类的构造函数创建一个正则表达式对象:
str = str.replace(Regex("""[$,.]"""), "")
这两个都表明您的字符串是正则表达式,并确保使用正确的replace()。
【讨论】: