2017-11-17 13 views
0

私の電卓にはプラスボタンがあります。最初のステートメントは、入力がないときに "+"記号を追加することです(計算ストリング変数はユーザーからのすべての入力を保持します)。 2番目のステートメントは、ユーザーが ""を追加することで、行に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

therエラーは、文字列が空(長さ:0)の場合です。空の文字列の最後の文字を見つけようとすると、どうなると思いますか? Characterの代わりにcharを使用し、二重引用符の代わりにsingleを使用するcharリテラルと比較することも検討してください。 – vandale

+0

私がcharを使うと、何らかの理由で==や.equals()を使うことができないので、Characterを保持しなければなりません。文字列が空の場合、ステートメント1はそれを処理します。 –

+0

それは奇妙に思える。 'lastChar == '+''も動作するはずです。 – vandale

答えて

0

のそれはだ私に言いました。

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

計算-1の後に-1があることに注意してください。

+0

元々私は-1だった、同じエラーがあります。 –