Чтобы игнорировать отрицательный знак:
int integer = Math.abs(input.nextInt());
Редактировать: Я не заметил, что ваш код уже сделал это.Чтобы код показывал отрицательный знак в конце, избавьтесь от следующих строк:
if (integer < 0)
integer = -integer;
, поскольку вы уже делаете
int rinteger = Math. abs (integer);
Затем замените все экземпляры, кромекулак integer
в разделах вычислений с помощью rinteger, например:
// Calculations
int rinteger = Math. abs (integer);
int lastinteger = rinteger % 10;
int X = rinteger / 10;
int secondinteger= X % 10;
int firstinteger = X /10;
int finalinteger = firstinteger + secondinteger + lastinteger;
Наконец, при отображении результатов используйте целое число вместо rinteger для восстановления знака минус или просто вставьте знак минуса вручнуюif integer<0
.
Ваш код также имеет недостатки, если целое число больше 3 цифр, как указали другие, но это отдельная проблема.
Чтобы добавить более 3 цифр, выпонадобится петля.Попробуйте это:
import java.util.Scanner;
public class Exercise2_6M
{
public static void main(String[] args)
{
// Create a Scanner
Scanner input = new Scanner(System.in);
// Enter amount
System.out.print("Enter an integer: ");
int integer = input.nextInt();
// Calculations
int rinteger = Math. abs (integer);
int sum = 0;
int i=0;
//loop through each digit (starting from the least significant) until the end of the number
while(rinteger / Math.pow(10,i) > 0)
{
sum+=getDigit(rinteger,i);
i++;
}
// Display results
System.out.println("Sum all digits in " + integer + " is " + sum);
}
public static int getDigit(int num, int power)
{
return (num % (int)Math.pow(10,power+1)) / (int)Math.pow(10,power);
}
}