在尝试通过循环访问charsequence元素时,App不响应

时间:2013-10-10 07:50:11

标签: java android charsequence

我试图制作一个可以解决30 + 55-(2 + 7-20)等长表情的计算器

但是我在同等按钮中遇到了一些逻辑问题... beq

我已经测试过逻辑问题是for循环但是无法理解。任何帮助都非常感激。继承我的代码

    beq.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            if (status==1){
            get=tvdisp1.getText();                          //tvdisp1 represents textView top expression bar
    //      tvdisp2.setText(get);                           //tvdisp2 represents 2nd textView answer bar
            if(get.charAt(0)=='x') {status=0;}              //to check for syntax error
            if(get.charAt(0)=='÷') {status=0;}              // same

            for(int i =0; i <= get.length(); i++ ) {        // loop to check if the first character is digit or character.
                if (Character.isDigit(get.charAt(i))) {
                    //is digit
                } 
                else {
                    //is operator

                }
            }

            if (cbracq_c>obracs_c){status=0;}               // if number of closing brackets > opening brackets
            if ( status == 0 ) { tvdisp1.setText("Syntax Error AC to reset");}
            }
        }
    });

1 个答案:

答案 0 :(得分:2)

正如Jon Skeet所说的那样。 你算1到远 - &gt; get.length()给出ua长度(例如)5,所以你的索引从0到4.但是在你的循环中你也试图访问索引5,因为“&lt; = ” 。只需将其更改为“&lt;”它应该工作