首页 > 解决方案 > 在这个 Java 的 char 数组代码中 - sum += c - '0' 行的目的是什么?

问题描述

我是 Java 编程的新手,我偶然发现了下面的复制粘贴代码(我发现来自:How to sum digits of an integer in java?

我很难理解这段代码,基本上想在下面一行解释一下: sum += c -'0'; 这条线的评价是什么?-'0' 的目的是什么?

提前谢谢大家。

导入 java.util.Scanner;

public class RandomPractice1 {

    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
            System.out.println("enter some digits: ");
         String digits = input.nextLine();  //try digits 55
        int sum = 0;
        for (char c : digits.toCharArray()) {
            sum += c -'0';
            
    }
        
        System.out.printf("sum of numbers %s is %d\n", digits, sum); //the answer is 10
}  }

标签: java

解决方案


charJava 中的值具有整数表示,但它不对应于它们的整数值。'0'是 48,'1'是 49,依此类推。

假设您只输入十进制数字,那么'0'从每个数字中减去char是获得其明显整数值的一种方法,因此当您将它们相加时,您会得到预期的总数。


推荐阅读