134 votes

Pourquoi "split" sur une chaîne vide renvoie un tableau non vide ?

Split sur une chaîne vide renvoie un tableau de taille 1 :

scala> "".split(',')
res1: Array[String] = Array("")

Considérons que cela renvoie un tableau vide :

scala> ",,,,".split(',')
res2: Array[String] = Array()

Veuillez expliquer :)

82voto

Sam Stainsby Points 795

Si vous divisez un orange zéro fois, vous avez exactement une seule pièce - l'orange.

39voto

Shredder Points 11513

La division d'une chaîne vide renvoie la chaîne vide comme premier élément. Si aucun délimiteur n'est trouvé dans la chaîne cible, vous obtiendrez un tableau de taille 1 qui contient la chaîne originale, même si elle est vide.

36voto

Daniel C. Sobral Points 159554

Pour la même raison que

",test" split ','

et

",test," split ','

renvoie un tableau de taille 2. Tout avant le premier match est retourné comme premier élément.

24voto

weberjn Points 146

"a".split(",") -> "a" donc "".split(",") -> ""

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