2011-11-03 38 views
0

我有復接一個簡單int值的問題(1)與來自炭數組中的值:乘法INT與來自字符數組不工作值

public void doStuff(String values) 
{ 
    char[] numbers = values.toCharArray(); 
    int result = 1; 

    for (int i = 0; i < numbers.length; i++) 
    { 
     System.out.println(numbers[i] + " " + result); 
     result *= numbers[i]; 
    } 

    // more stuff here 
} 
在我的情況

輸入字符串參數是「73167」。在結果* =數字[我]「結果應該是第一次迭代後7,但eclipse中的調試信息說結果= 55. 任何提示?

回答

10

您的問題是"73167"不是一個數字。它是由字符"7","3","1","6","7"組成的字符串。 Java中的char是Unicode代碼點,並且'7'在ASCII/UTF-8中是55。你想幹什麼

result *= Character.getNumericValue(numbers[i]); 

文件爲:Character.getNumericValue(char)

+0

非常感謝!解決了我的問題! – schmodd

2

炭值均爲ASCII碼,一個 '1' 不是1

得到真正的號碼,使用(的charValue - '0')