Reputation: 1002
I need to split a String read in from a file into an array of values. I want to split the String at the commas, so for example, if the String read:
"name, 2012, 2017"
The values in the array would be:
I found this example in Java:
String[] stringArray = string.split(",");
How I could do it in Kotlin?
Upvotes: 94
Views: 171646
Reputation: 6605
var newStrg= "853 kB"
val mString = newStrg!!.split(" ").toTypedArray()
Here Split parameter is space
mString[0] = "853"
mString[1] = "kB"
Upvotes: 7
Reputation: 5103
If you want to use multiple/several delimiters in kotlin split
, you need to pass them separately:
val validUrl = "http://test.com/</a> -".split(">", " ", "<").first()
Upvotes: 1
Reputation: 796
Simple as it is:
val string: String = "leo_Ana_John"
val yourArray: List<String> = string.split("_")
you get: yourArray[0] == leo, yourArray[1] == Ana, yourArray[2]==John
In this case, just change the "_" from my code to ", " of yours. Se bellow
val yourArray: List<String> = string.split(", ")
Upvotes: 21
Reputation: 808
Split a string using inbuilt split method then using method extensions isNum() to return numeric or not.
fun String.isNum(): Boolean{
var num:Int? = this.trim().toIntOrNull()
return if (num != null) true else false
}
for (x in "name, 2012, 2017".split(",")) {
println(x.isNum())
}
Upvotes: 2
Reputation: 2929
If we have a string of values that splited by any character like ",":
val values = "Name1 ,Name2, Name3" // Read List from somewhere
val lstValues: List<String> = values.split(",").map { it -> it.trim() }
lstValues.forEach { it ->
Log.i("Values", "value=$it")
//Do Something
}
It's better to use trim() to delete spaces around strings if exist. Consider that if have a "," at the end of string it makes one null item, so can check it with this code before split :
if ( values.endsWith(",") )
values = values.substring(0, values.length - 1)
if you want to convert list to Array ,use this code:
var arr = lstValues.toTypedArray()
arr.forEach { Log.i("ArrayItem", " Array item=" + it ) }
Upvotes: 17