2017-03-18 35 views
0

用戶輸入表達式:2 + 3 -4如何在數學表達式中僅在操作數和下面的階乘(!)運算符之間插入括號?

我想達到的目標:2+ - 4

對於這個我明白,我可以用 '的replaceAll()' 和替換!(3!)全部「!」與「!)」。這解決了右括號插入的問題,但我想知道我如何能得到「(」之前的操作數(在這種情況下,3),因爲它可以是任何數字。

謝謝:)

+0

你應該看看正則表達式。 – AnixPasBesoin

+0

哦!正則表達式可以幫助這裏?我會看一下。謝謝。我已經在使用MXParser庫來計算表達式,所以現在認爲不需要Regex。 –

回答

1

您可以使用這個正則表達式/(\d+\!)/g使用階乘來查找零件。實施取決於您使用的語言。

在Java中它應該是類似myString.replaceAll("(\d+\!)", "($1)"); $ 1是一個反向引用到orignial模式。

+0

我正在爲此使用android studio。所以它的Java。 –

+0

感謝您的回答。您能否詳細說明您的意思是「$ 1是對原始模式的反向引用」?我不熟悉這個詞彙:) –

+0

$ 1是它找到的價值/模式。在'2 + 3!-4'的情況下,它將是'3!',因此它將用'(3!)'代替找到的模式'3!'。' –

相關問題