【Android開發】計算器代碼中的小數點輸入改進

【Android開發】計算器代碼中的小數點輸入改進

1、傳統的計算器的小數點輸入代碼

            case R.id.point:
                // 判斷第一個個字符串是什麼情況
                if(str1 != "" && option == ""){
                    str1 = str1 + ((Button) view).getText().toString();
                    theFirstView.setText(str1);
                }
                // 判斷第2個字符串是什麼情況
                if(option != "" && str2 != ""){
                    str2 = str2 + ((Button) view).getText().toString();
                    theSecondView.setText(str2);
                }
                else{
                    //什麼都不執行
                }
                break;

傳統的計算器代碼,在輸入小數點的時候,沒有考慮以下情形:

  • 一個數字包含多個小數點8.8.8
  • 重複輸入小數點8…8

這兩種情形都是有問題的

2、改進後的代碼

使用strings.contains()函數

            case R.id.point:
                // 判斷第一個個字符串是什麼情況
                if(str1 != "" && option == ""){
                    // 增加1個if語句判斷str1裏面是否已經包含小數點
                    // 保證不會出現8.8.8或者8..8
                    if(!str1.contains(".")) {
                        // 不包含小數點則執行以下操作
                        // 把小數點添加到str1,更新屏幕顯示
                        str1 = str1 + ((Button) view).getText().toString();
                        theFirstView.setText(str1);
                    }
                }
                // 判斷第2個字符串是什麼情況
                if(option != "" && str2 != ""){
                    // 增加1個if語句判斷str2裏面是否已經包含小數點
                    if(!str2.contains(".")) {
                        // 把小數點添加到str2,更新屏幕顯示
                        str2 = str2 + ((Button) view).getText().toString();
                        theSecondView.setText(str2);
                    }
                }
                else{
                    //什麼都不執行
                }
                break;

【作者簡介】陳藝榮,男,目前在華南理工大學電子與信息學院廣東省人體數據科學工程技術研究中心攻讀博士,擔任IEEE Access、IEEE Photonics Journal的審稿人。兩次獲得美國大學生數學建模競賽(MCM)一等獎,獲得2017年全國大學生數學建模競賽(廣東賽區)一等獎、2018年廣東省大學生電子設計競賽一等獎等科技競賽獎項,主持一項2017-2019年國家級大學生創新訓練項目獲得優秀結題,參與兩項廣東大學生科技創新培育專項資金、一項2018-2019年國家級大學生創新訓練項目獲得良好結題,發表SCI論文4篇,授權實用新型專利8項,受理髮明專利13項。
我的主頁
我的Github
我的CSDN博客
我的Linkedin

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章