将int与char数组中的值相乘无效

时间:2011-11-03 17:10:29

标签: java arrays

我遇到一个问题,即将一个简单的int值(1)与char-array中的值相乘:

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”。在第一次迭代后,结果“result * = numbers [i]”结果应为7,但eclipse中的调试信息表示结果= 55。 任何提示??

2 个答案:

答案 0 :(得分:10)

您的问题是"73167"不是数字。它是由字符"7""3""1""6""7"组成的字符串。 Java中的char是Unicode代码点,'7'是ASCII / UTF-8中的55。你想做什么

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

Doc for:Character.getNumericValue(char)

答案 1 :(得分:2)

char值为ascii,'1'不是1

获取实数,使用(charValue - '0')