Split space from string not working in Kotlin
Here's an issue between the Java and Kotlin implementation of String.split
.
While the Java implementation does accept a regex string, the Kotlin one does not. For it to work, you need to provide an actual Regex
object.
To do so, you would update your code as follows:
value.split("\\s".toRegex())[0]
Also, as @Thomas suggested, you can just use the regular space character to split your string with:
value.split(" ")[0]
Final point, if you're only using the first element of the split list, you might want to consider using first()
instead of [0]
- for better readability - and setting the limit parameter to 2 - for better performance.
You need to use :
.toRegex()
fun main(args: Array<String>) {
val str = "Kotlin com"
val separate1 = str.split("\\s".toRegex())[0]
println(separate1) // ------------------> Kotlin
}
OR
You can also use .split(" ")[0]
to achieve result. Like
fun main(args: Array<String>) {
val str = "Kotlin com"
val separate1 = str.split(" ")[0]
println(separate1) // ----------> Kotlin
}
String#split
(actually CharSequence#split
) can take either a regular expression, or just a string which is interpreted literally. So:
value.split(" ")[0]
does what you want.
If you're only using the first element, it's more efficient to also pass limit = 2
. Or, even better, use substringBefore
.