2017-03-18 3 views
0

expression entrée utilisateur: 2 + 3 -4Comment insérer des parenthèses seulement autour d'un opérande et l'opérateur factoriel (!) Suivant dans une expression mathématique?

Ce que je veux atteindre: 2 + - 4

Pour cela, je comprends que je peux utiliser 'replaceAll()' et remplacer! (3!) tout "!" avec "!)". Cela résout le problème d'insertion du support de fermeture mais je veux savoir comment puis-je obtenir « (» avant l'opérande (dans ce cas, 3) car il peut être un nombre.

Merci :)

+0

Vous devriez jeter un coup d'œil aux expressions régulières. – AnixPasBesoin

+0

Oh! Les expressions régulières peuvent aider ici? J'irais regarder. Je vous remercie. J'utilise déjà la bibliothèque MXParser pour calculer l'expression, donc je n'ai pas besoin de Regex pour le moment. –

Répondre

1

Vous pouvez utiliser cette expression régulière /(\d+\!)/g pour trouver les pièces en utilisant un factoriel. L'implémentation dépend de la langue que vous utilisez.

En Java, cela devrait ressembler à myString.replaceAll("(\d+\!)", "($1)"); Le $ 1 est une référence arrière au motif original.

+0

J'utilise un studio Android pour ça. Donc, son java. –

+0

Merci pour la réponse. Pouvez-vous préciser ce que vous entendez par «1 $ est une référence par rapport au modèle original»? Je ne suis pas encore bien familiarisé avec ce vocabulaire :) –

+0

$ 1 est la valeur/motif qu'il trouve. Dans le cas de '2 + 3! -4', ce serait' 3! ', Donc il va remplacer le motif trouvé' 3! 'Par' (3!) ' –