J'ai le code suivant:
String generalRequest = "4+6*12/3"; String[] operatorsLine = generalRequest.split("[0-9]+");
En conséquence, j'ai le surplus de valeur vide dans operatorsLine
:
"", "+", "*", "/"
Hovewer je désire un résultat:
"+", "*", "/"
Comment ignorer l'ajout de la valeur ""
dans un tableau, en utilisant la méthode String.split ()
?
3 Réponses :
Vous pouvez utiliser quelque chose comme:
String[] operatorsLine = Arrays.stream(generalRequest.split("[0-9]+")) .filter(s -> !s.isEmpty()) .toArray(String[]::new);
Merci, mais j'obtiens l'erreur de compilation suivante: Erreur: (51, 102) java: la méthode toArray dans l'interface java.util.stream.Stream
dans nouvelle chaîne [0]
résolu! Merci, mon ami). J'ai aussi toujours du mal avec les générateurs de fonctions)
Pas de problème, je suis heureux de vous aider :)
Dans ce cas, vous n'avez besoin que d'opérateurs à caractère unique,
supprimer tous les chiffres de la chaîne et le fractionner avec une chaîne vide comme délimiteur fonctionnerait:
[+, *, /]
Ceci imprime:
String generalRequest = "4+6*12/3"; String[] operatorsLine = generalRequest.replaceAll("\\d", "").split(""); System.out.println(Arrays.toString(operatorsLine));
Que diriez-vous de fournir le deuxième paramètre à méthode split (String regex, int limit)
et en la limitant avec 2 champs de sortie et en la divisant à nouveau:
String generalRequest = "4+6*12/3"; String[] operatorsLine = (generalRequest.split("\\d+", 2)[1]).split("\\d+");
Quel est votre résultat souhaité?
@Ghanima "+", "*", "/"