[英]Java/Android - Plus minus button on a calculator
這不是重復項 。 與其他StackOverflow
問題不同,我不想顯示表達式的結果,然后添加minus
或plus
號。 我想在按下時將整個表達式變成negative
或positive
。
例如 :
-(5*8+7/7)
或再次按+/-
時:
5*8+7/7
這是我到目前為止的內容:
negative = !negative;
if (negative == true)
{
expression = "-(" + expression + ")";
}
else
{
expression = "+(" + expression + ")";
}
盡管這在計算方面確實可以正常工作,但我發現在找出如何創建+(
和-(
不會一直附加到表達式的智能方式方面遇到麻煩。
將正/負狀態保留為布爾值,並在渲染時添加-(...)部分。 否則,您可以匹配開頭,並且可以匹配-(resp。)並將其刪除。 但是,這將錯過-5的簡單情況。 為了覆蓋所有角落,您將編寫一些代碼。 如果可能,我將其保留為單獨的狀態。
編輯:只是要添加“適當的”解決方案將是解析字符串並構建一個表示表達式(AST)的樹,並檢測最外面的運算符是否是一元減號,然后簡單地將其刪除(如果是,則添加它否),然后檢查下一個運算符是否為括號並將其刪除(如果您不只是加上減號),最后重新生成字符串。 但是,所有這些都需要做更多的工作。
我認為您可以使用兩個包含表達式的文本字段,例如[textfield A] [expression] [textfield B],並且不能從用戶輸入textfield A和textfield B,僅當用戶按下負/正按鈕時才更改。
視圖將像:
-(5 * 8 + 7/7)
要么
5 * 8 + 7/7
認為這可以幫助您。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.