Did literally the other day, but in two other ways. Here my package names are used.
The main class SumOfDigits.java:
package info.sjd; import java.util.logging.Logger; import info.sjd.service.SumOfDigitsService; public class SumOfDigits { private static Logger logger = Logger.getLogger(SumOfDigits.class.getName()); public static void main(String[] args) { int number = 12345; int sumOfDigitsByIntegerDivision = SumOfDigitsService.sumOfDigitsByIntegerDivision(number); int sumOfDigitsByCharSplitting = SumOfDigitsService.sumOfDigitsByCharSplitting(number); logger.info("The sum of digits of number " + number + " by integer division is " + sumOfDigitsByIntegerDivision); logger.info("The sum of digits of number " + number + " by character splitting is " + sumOfDigitsByCharSplitting); } }
SumOfDigitsService.java service class:
package info.sjd.service; public class SumOfDigitsService { public static int sumOfDigitsByIntegerDivision(int number) { int sumOfDigits = 0; while (number > 0) { sumOfDigits = sumOfDigits + (number % 10); number = number / 10; } return sumOfDigits; } public static int sumOfDigitsByCharSplitting(int number) { int sumOfDigits = 0; String stringNumber = String.valueOf(number); for (int i = 0; i < String.valueOf(number).length(); i++) { sumOfDigits = sumOfDigits + Integer.parseInt(String.valueOf(stringNumber.charAt(i))); } return sumOfDigits; } }
In your case, you will most likely need to deal with type casting and it is possible to use the override of the .toString method ()
========== UPDATED =================
Yes, with coercion of types understand. Everything works, if so: package info.sjd;
public class Solution { public static void main(String[] args) { System.out.println(sumDigitsInNumber(546)); } public static int sumDigitsInNumber(int number) { String s = Integer.toString(number); char[] chars = s.toCharArray(); number = 0; for (int i = 0; i < chars.length; i++) { number += Integer.parseInt(String.valueOf(chars[i])); } return number; } }