How in Java do you return the first digit of an integer.?
i.e.
345
Returns an int of 3.
To separate digits of an integer from left to right I use 2 different methods, the first one to count how many digits the integer is made up of and then I split them from left to right by dividing the integer by 10 raised to the power of the number of digits minus 1.
//method to separate digits of an integer from left to right
private static void separateDigits(int num){
int numOfDigits = countNumberOfDigits(num);
for (int numOfZeros = numOfDigits-1; numOfZeros >= 0 ; --numOfZeros){
int divisor = (int) Math.pow(10, numOfZeros);
System.out.print( Math.abs(num) / divisor + " // " );
num %= divisor;
}
}
//method to count number of digits
private static int countNumberOfDigits(int num){
int numOfDigits=0;
//using absolute value of num allows method to work even with negative integers
while(Math.abs(num) > 0){
num = num / 10;
numOfDigits++; //this counts the number of times the "while" loops
}
return numOfDigits;
}
No use of Arrays or recursive methods just simple division with "/" and "%".
Invoking the method:
public static void main(String args[]) {
separateDigits( -123456789 );
}
yields: 1 // 2 // 3 // 4 // 5 // 6 // 7 // 8 // 9 //