2017-01-24 4 views
-2

私は両方の変数にデータがあるので意味がないゼロ除算エラーが発生します。java.lang.ArithmeticException:ゼロで除算するエラー

String str = "54"; 
int i = 0, b = 0; 

while(i < str.length()){ 
    b = b + Integer.parseInt(Character.toString(str.charAt(i))); 
    i++; 
} 

int ratings = (b/str.length()); 

これはエラーが参照しているラインで、Bは、9の値を有する(これは整数)とstr(これも整数である。)2の長さを有します。

私は部門にアクセスしようとするとこのエラーが出ますが、両方の変数にアクセスすると問題なく値が得られます。

また、strLengthという別の変数を作成しようとしましたが、そこに長さを取得しましたが、エラーはそのまま残ります。

+1

あなたはstrはそれが必要値が含まれていることを確認していますか?この行を 'System.out.println(" "+ str.length());'を除算の前に追加してください。 – TDG

+0

コンピュータは横たわっていません!この行の前にコードを投稿できますか? –

+0

本当に2つの可能性があります: 'str.length()'は何らかの理由で実際にゼロになっているか、エラーは他のコードから来ています。コードを1行だけ表示すると、正確に何が起こっているのかを言うのは本当に難しいです。 –

答えて

0

私はあなたの問題をシミュレートすることはできませんが、私は例を行い、正しく動作します。ただし、strが空の場合、java.lang.ArithmeticException:/ by zeroエラーが発生します。エラーが続く場合は、さらに情報を投稿してください。

Exemple:

public static void main(String[] args) { 
    int b = 9; 
    String str = "AB"; 

    int ratings = (b/str.length()); 

    System.out.println(ratings); 
} 
+0

私の問題は、数字の文字列を持っていることです、今は54ですが、将来変更されます。私は文字列からすべての数字を抽出し、それらを追加して整数に変換し、その文字列の長さで除算する必要があります(私は平均をしなければなりません) –

+0

文字列番号の例を投稿するかもしれませんか? –

+0

彼の説明によって私はこう理解した: public static void main(String [] args){ String a = "12345"; //123456.........54 String [] x = a.split( ""); int add = 0; for(String x1:x){ add + = Integer.parseInt(x1); } System.out.println( "Avarage:" +(add/a.length())); } –