【Android开发】计算器代码中的小数点输入改进

【Android开发】计算器代码中的小数点输入改进

  • 1、传统的计算器的小数点输入代码
  • 2、改进后的代码

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

你可能感兴趣的:(Android)