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
答
,如果你打算读“计算”字符串的最后一个字符,那么你需要做的;
Character lastChar = calculation.charAt(calculation.length()-1);
注意calculate.Length(-1)后的-1。
+0
本来我有-1,有同样的错误。 –
当字符串为空(长度:0)时,错误是错误的。如果您尝试查找空字符串的最后一个字符,您认为会发生什么?你也应该考虑使用char而不是Character来比较它与char文字,它们使用单引号而不是双引号。 – vandale
如果我使用char,出于某种原因我不能使用==或.equals(),所以我必须保留Character。当字符串为空时,语句1将处理它。 –
这看起来很奇怪。 'lastChar =='+''也应该有效。 – vandale