用戶輸入表達式:2 + 3 -4如何在數學表達式中僅在操作數和下面的階乘(!)運算符之間插入括號?
我想達到的目標:2+ - 4
對於這個我明白,我可以用 '的replaceAll()' 和替換!(3!)全部「!」與「!)」。這解決了右括號插入的問題,但我想知道我如何能得到「(」之前的操作數(在這種情況下,3),因爲它可以是任何數字。
謝謝:)
用戶輸入表達式:2 + 3 -4如何在數學表達式中僅在操作數和下面的階乘(!)運算符之間插入括號?
我想達到的目標:2+ - 4
對於這個我明白,我可以用 '的replaceAll()' 和替換!(3!)全部「!」與「!)」。這解決了右括號插入的問題,但我想知道我如何能得到「(」之前的操作數(在這種情況下,3),因爲它可以是任何數字。
謝謝:)
您可以使用這個正則表達式/(\d+\!)/g
使用階乘來查找零件。實施取決於您使用的語言。
在Java中它應該是類似myString.replaceAll("(\d+\!)", "($1)");
$ 1是一個反向引用到orignial模式。
我正在爲此使用android studio。所以它的Java。 –
感謝您的回答。您能否詳細說明您的意思是「$ 1是對原始模式的反向引用」?我不熟悉這個詞彙:) –
$ 1是它找到的價值/模式。在'2 + 3!-4'的情況下,它將是'3!',因此它將用'(3!)'代替找到的模式'3!'。' –
你應該看看正則表達式。 – AnixPasBesoin
哦!正則表達式可以幫助這裏?我會看一下。謝謝。我已經在使用MXParser庫來計算表達式,所以現在認爲不需要Regex。 –