从字符串中拆分空间不在Kotlin中工作

Bab*_*tel 12 android kotlin android-studio kotlin-extension

有人在想这个吗?在kotlin中拆分SPACE("")不起作用,我尝试使用不同的正则表达式代码,但根本不工作.

试过这个:

value.split("\\s")[0];
value.split("\\s+")[0];
value.split("\\s++")[0];
Run Code Online (Sandbox Code Playgroud)

然后我想出了解决方案 - >创建包含此函数的java常量类,并将字符串数组返回给您的kotlin类.

对于这个问题我们可以直接实现这个问题吗?

解决方案:正如@Edson Menegatti所说:

KOTLIN具体:工作

values.split("\\s".toRegex())[0]
Run Code Online (Sandbox Code Playgroud)

很多人建议这个解决方案: 不工作

values.split(" ")[0] 
Run Code Online (Sandbox Code Playgroud)

但就我而言,它不起作用.

Eds*_*tti 21

这是Java和Kotlin实现之间的一个问题String.split.

虽然Java实现确实接受了正则表达式字符串,但Kotlin却没有.要使它工作,您需要提供一个实际的Regex对象.

为此,您将按如下方式更新代码:

value.split("\\s".toRegex())[0];
Run Code Online (Sandbox Code Playgroud)

另外,正如@Thomas建议的那样,你可以使用常规空格字符来分割你的字符串:

value.split(" ")[0];
Run Code Online (Sandbox Code Playgroud)

最后一点,如果您只使用拆分列表的第一个元素,您可能需要考虑使用first()而不是[0]- 为了更好的可读性 - 并将limit参数设置为2 - 以获得更好的性能.


Nik*_*unj 6

您需要使用:

.toRegex()

fun main(args: Array<String>) {
        val str = "Kotlin com"

        val separate1 = str.split("\\s".toRegex())[0]
        println(separate1) // ------------------> Kotlin
}
Run Code Online (Sandbox Code Playgroud)

要么

您也可以使用.split(" ")[0]来达到目的。喜欢

fun main(args: Array<String>) {
            val str = "Kotlin com"

            val separate1 = str.split(" ")[0]
            println(separate1) // ----------> Kotlin
}
Run Code Online (Sandbox Code Playgroud)


Tho*_*mas 5

String#split(实际上CharSequence#split)可以采用正则表达式,也可以采用按字面解释的字符串。所以:

value.split(" ")[0]
Run Code Online (Sandbox Code Playgroud)

做你想做的事。

如果您仅使用第一个元素,则传递 会更有效limit = 2。或者,更好的是,使用substringBefore.