donné une liste de chaînes numériques [1,3,5,0,2,0,0,0] code>. Existe-t-il un moyen de supprimer le dernier 0, pour obtenir
[1,3,5,0,2] code>, si possible à l'aide de flux. P>
3 Réponses :
Si vous êtes sur Java9 au moins:
List<String> inputList = ... Predicate<String> predicate = ... List<String> result = new ArrayList<>(inputList); Colledtions.reverse(result); result = result.stream .dropWhile(predicate) .collect(toList());
Merci, les interessessants mais je gère Java8 seulement et je ne peux pas utiliser de baisse. Quoi qu'il en soit, vous avez raison, le mécanisme inversé pourrait être utile ici.
Ou vous pouvez même créer une drique de l'entrée et de la pop () pendant que vos chaînes correspondent
Je ne vois aucune raison pour laquelle vous devriez utiliser des flux dans ce cas. L'extrait suivant est court et simple. Je vous recommanderais de cette façon.
String[] stringarray = { "1", "3", "5", "0", "2", "0", "0", "0" }; List<String> strings = new ArrayList<>(Arrays.asList(stringarray)); while (strings.get(strings.size() - 1).equals("0")) { strings.remove(strings.size() - 1); }
int compte = 2; tandis que (strings.get (strings.size () - 1) .equals ("0") && comptez> = 0) {comptent--; strings.remove (cordes.Size () - 1); } code> car ne fonctionne pas pour
{"1", "3", "5", "0", "2", "0", "0", "0", "0"} < / code>
une solution simple
Vous voulez dire un numéro de double?
Je veux juste supprimer les trois derniers 0 sans supprimer le 0 qui ne sont pas à la fin de la liste.
Ceci est juste un exemple, cela pourrait être un nombre différent de 0 à la fin.
... Et qu'avez-vous essayé jusqu'à présent?