我是Java编程的新手,我偶然发现了下面的复制粘贴代码(我从:如何在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 %dn", digits, sum); //the answer is 10 } }
Java中的char
值具有整数表示,但它不对应于它们的整数值。'0'
为48,'1'
为49,依此类推。
假设您只输入十进制数字,那么从每个char
中减去'0'
是获得其明显整数值的一种方法,因此当您将它们相加时,您将得到期望的总数。