Android计算器 - 加号按钮

问题描述:

我的计算器上有一个加号按钮。第一种说法是在没有输入时(计算字符串变量保存来自用户的所有输入)添加“+”符号。第二个陈述是防止用户通过添加“”在一行中输入2个“+”符号。Android计算器 - 加号按钮

它不断给我一个错误:java.lang.StringIndexOutOfBoundsException: length=0; index=0

btnMinus.setOnClickListener(new View.OnClickListener() { 
    @Override 

    public void onClick(View view) { 
     calculation = tvCalculation.getText().toString(); 

     Character lastChar = calculation.charAt(calculation.length()); 

     //App negeert deze statements 
     if(calculation.length() >= 0) { 
       tvCalculation.setText(calculation + "-"); 
     } else if (lastChar.toString().equals("+")) { 
       tvCalculation.setText(calculation + ""); 
     } 
    } 
}); 

有人告诉我,那是因为在toString()线4

+0

当字符串为空(长度:0)时,错误是错误的。如果您尝试查找空字符串的最后一个字符,您认为会发生什么?你也应该考虑使用char而不是Character来比较它与char文字,它们使用单​​引号而不是双引号。 – vandale

+0

如果我使用char,出于某种原因我不能使用==或.equals(),所以我必须保留Character。当字符串为空时,语句1将处理它。 –

+0

这看起来很奇怪。 'lastChar =='+''也应该有效。 – vandale

,如果你打算读“计算”字符串的最后一个字符,那么你需要做的;

Character lastChar = calculation.charAt(calculation.length()-1); 

注意calculate.Length(-1)后的-1。

+0

本来我有-1,有同样的错误。 –