使Kotlin中的字符串以指定的前缀开始



我正试图找出连接前缀到字符串的本地方法,但仅在情况下,它不是。

此代码检查text变量并使其以"#"开头。

val text = "123456"
val prefix = "#"
val textFormatted = (if (text.startsWith(prefix)) "" else prefix ) + text

我希望在Kotlin中有一个干净的解决方案

另一个选择是使用removePrefix:

val textFormatted = prefix + text.removePrefix(prefix)

否则,您也可以保留if,但以以下方式编写,以避免额外的括号和额外的连接,并使代码更接近语义:

val textFormatted = if (text.startsWith(prefix)) text else "$prefix$text"

但你的方法也管用。

您可以使用kotlin中的字符串插值,例如:

val text:String = "123456#123456"
val prefix:String = "#"
val interpolation:String = "#${text.removePrefix(prefix)}"