48 votes

Meilleur moyen de convertir une liste de tableaux en chaîne de caractères en Kotlin

J'ai une liste de chaînes en kotlin.

private val list = ArrayList<String>()

Je veux le convertir en String avec un séparateur ",". Je sais que nous pouvons le faire de manière programmatique par le biais d'une boucle, mais dans d'autres langages, nous avons des fonctions de mappage disponibles, comme en Java, nous avons

StringUtils.join(list);

Et dans Swift, nous avons

array.joined(separator:",");

Existe-t-il une méthode permettant de convertir ArrayList a String avec un séparateur en Kotlin ?

Et qu'en est-il de l'ajout de séparateurs personnalisés comme "-", etc.

134voto

ElectroWeak Points 623

Kotlin a joinToString juste pour cette méthode

list.joinToString()

Vous pouvez modifier un séparateur comme suit

list.joinToString(separator = ":")

Si vous voulez le personnaliser davantage, voici tous les paramètres que vous pouvez utiliser dans cette fonction

val list = listOf("one", "two", "three", "four", "five")
println(
    list.joinToString(
        prefix = "[",
        separator = ":",
        postfix = "]",
        limit = 3,
        truncated = "...",
        transform = { it.toUpperCase() })
)

qui produit

[UN:DEUX:TROIS :...]

10voto

FilipRistic Points 1492

Kotlin a également une méthode pour cela, elle s'appelle joinToString .

Vous pouvez simplement l'appeler comme ceci :

list.joinToString());

Parce que par défaut, il utilise la virgule comme séparateur, mais vous pouvez également passer votre propre séparateur comme paramètre, cette méthode prend un certain nombre de paramètres en dehors de séparateur, qui permettent de faire beaucoup de formatage, comme préfixe, postfixe et plus.

Vous pouvez tout lire à ce sujet aquí

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X