J'ai une chaîne qui ressemble à ceci:buiding une pile dans une carte
"7-6-4-1"
ou
"7"
ou
""
C'est un ensemble de nombres séparés par -. Il peut y avoir zéro ou plusieurs nombres.
Je veux retourner une pile avec les numéros poussé dans cet ordre (c.-à pousser 7 premier et 1 ast, pour le premier exemple)
Si je voulais juste retourner une liste que je pouvais aller str.split("-").map{_.toInt}
(bien que cela ne fonctionne pas sur la chaîne vide)/
Cependant, il n'y a pas de toStack à convertir en pile. Donc actuellement, j'ai
{
val s = new Stack[Int];
if (x.nonEmpty)
x.split('-').foreach {
y => s.push(y.toInt)
}
s
}
Qui fonctionne, mais est assez moche. Qu'est-ce que je rate?
EDIT: Merci à tous les intervenants, je l'ai appris tout à fait un peu de cette discussion
Merci. J'ai encore besoin du chèque non-vide pour x? –
@Paul oui, le contrôle nonEmpty n'est pas là –
'x => {Stack (x.split (" - "). Collecter {case x si x.nonEmpty => x.toInt} .reverse: _ *)}' bit . semble couvrir le cas nonEmpty :) –