2017-11-17 121 views
0

我的計算器上有一個加號按鈕。第一種說法是在沒有輸入時(計算字符串變量保存來自用戶的所有輸入)添加「+」符號。第二個陳述是防止用戶通過添加「」在一行中輸入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

回答

0

,如果你打算讀「計算」字符串的最後一個字符,那麼你需要做的;

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

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

+0

本來我有-1,有同樣的錯誤。 –