2017-05-08 7 views
0

指定された文字列のすべての数字を合計する必要があります。指定された文字列の数字を集計する

出力は100の代わりに、4。私は何をすべきである

"アラは3個のリンゴと1個のオレンジを得た":I入力がときに、私はこの

public static void main(String[] args) { 

    Scanner odczyt = new Scanner(System.in); 
    System.out.println("Input string"); 
    String ciag = odczyt.nextLine(); 

    int suma = 0; 

    for (int i = 0; i < ciag.length(); i++) { 
     if (Character.isDigit(ciag.charAt(i))) { 
      suma += ciag.charAt(i); 
     } 
    } 
    System.out.println(suma); 
} 

を持っているためそれは数字だけを数えるために変更?

+0

「Alaが13のリンゴと1つのオレンジを手に入れた」場合は、14または5が必要ですか?言い換えれば、数字を個別に処理する必要がありますか? –

+0

はい、すべての桁を独自の番号に追加する必要があります。 –

答えて

5

ここでの問題は発生します。

suma += ciag.charAt(i); 

あなたは文字コードではなく、数字自体を追加しています。これに

変更して:あなたは数字のASCIIコードを追加しているためである

suma += Integer.parseInt(ciag.charAt(i)+""); 
1

。以下に示すように、文字番号から「0」を減算するだけです。

suma + = ciag.charAt(i) - '0';

+0

アイディアは正しいです。 'Character.getNumericValue(ciag.charAt(i))'を使う方が良い。 –

関連する問題