Java 回复:卢恩';支票

Java 回复:卢恩';支票,java,Java,我试图找出如何编写从右到左而不是从左到右读取的代码 public static int sumofEvenSpot(long number) { int sumEvenSpot = 0; String stringLength = Long.toString(number); for (int i = 0; i< stringLength.length(); i += 2) sumEvenSpot += (getDigit(Character.g

我试图找出如何编写从右到左而不是从左到右读取的代码

 public static int sumofEvenSpot(long number)
{
    int sumEvenSpot = 0;
    String stringLength = Long.toString(number);

    for (int i = 0; i< stringLength.length(); i += 2)
        sumEvenSpot += (getDigit(Character.getNumericValue(stringLength.charAt(i)) * 2));
    return sumEvenSpot;
}
public static int sumofEvenSpot(长数字)
{
int-sumEvenSpot=0;
字符串长度=Long.toString(数字);
对于(int i=0;i
只需对(int i=stringLength.length()-1;i=0;i=i-2)执行

用于(开始、结束、增量)


您可以反转字符串并对进行普通运算,但需要更多的代码。您可以从最右边的数字开始求和,每次迭代将数字除以100,以删除当前数字和下一个数字(奇数处),以保持对以下偶数数字求和:

int sum = 0;    
while(number > 0) {    
    sum += number % 10;
    number /= 100;
}

这样做的一个优点是,您不必将long转换为string,然后再转换为int。

将for循环从
stringLength.length()-1
向后运行到零。顺便问一下,为什么要乘以2?