2017-05-08 40 views
0

我需要對給定字符串中的所有數字進行求和。因此,對於我這有計算給定字符串中的數字

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); 
} 

當我輸入:

「阿拉有3個蘋果和1個橙色」

輸出爲100,而不是4.我應該怎麼改變以使其僅計數數字?

+0

如果那是「Ala得到13個蘋果和1個桔子」,你會需要14或5嗎?換句話說,它是否應該單獨處理數字? –

+0

是的,每個數字都應該自己添加。 –

回答

5

問題發生在這裏:

suma += ciag.charAt(i); 

您要添加的字符代碼,而不是數字本身。

它改成這樣:

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

那是因爲你要添加的數字的ASCII碼。只需從char數中減去'0',如下所示:

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

+0

這個想法是對的。最好使用'Character.getNumericValue(ciag.charAt(i))'。 –