簡體   English   中英

Java / Android-計算器上的加號減號按鈕

[英]Java/Android - Plus minus button on a calculator

這不是重復項 與其他StackOverflow問題不同,我不想顯示表達式的結果,然后添加minusplus號。 我想在按下時將整個表達式變成negativepositive

例如

-(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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM