web-dev-qa-db-fra.com

Comment pourrais-je diviser une chaîne en un tableau dans Kotlin?

J'ai besoin de diviser une chaîne lue dans un fichier en un tableau de valeurs. Je veux diviser la chaîne au niveau des virgules, donc par exemple, si la chaîne se lit:

"name, 2012, 2017"

Les valeurs dans le tableau seraient:

  • index de tableau 0 - nom
  • indice de tableau 1 - 2012
  • indice de tableau 2-2017

J'ai trouvé cet exemple en Java:

String[] stringArray = string.split(",");

Comment pourrais-je le faire à Kotlin?

15
Michael F.
val strs = "name, 2012, 2017".split(",").toTypedArray()
27
JK Ly

Si nous avons une chaîne de valeurs divisée par n'importe quel caractère comme ",":

 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
            }

Il est préférable d'utiliser trim () pour supprimer les espaces autour des chaînes s'ils existent. Considérez que si vous avez un "," à la fin de la chaîne, cela fait un élément nul, vous pouvez donc le vérifier avec ce code avant de le fractionner:

 if ( values.endsWith(",") )
     values = values.substring(0, values.length - 1)

si vous voulez convertir la liste en tableau, utilisez ce code:

      var  arr = lstValues.toTypedArray()
      arr.forEach {  Log.i("ArrayItem", " Array item=" + it ) }
3
Hamed Jaliliani

Aussi simple que cela soit:

val string: String = "leo_Ana_John"
val yourArray: List<String> = string.split("_")

vous obtenez: votreArray [0] == leo, votreArray [1] == Ana, votreArray [2] == John

1
Thiago Silva