Cómo obtener los dígitos separados de un número Int en Java

  1. % (mod) para obtener el resto del número entero dado
  2. String.toCharArray() para obtener el conjunto de carácters
  3. number.split("(?<=.)") Método para obtener el array de cadenas y luego dividirlas
  4. Separar los dígitos de una Int usando Recursión

Java ofrece muchos métodos para trabajar con números enteros. Veremos cómo podemos extraer y separar cada dígito de un número entero.

% (mod) para obtener el resto del número entero dado

Podemos obtener cada dígito de un número entero usando el método del resto. Java nos permite obtener el resto de cualquier número entero usando el operador % (mod).

Pero el simple hecho de obtener el resto nos dará el resultado en el orden inverso. Es por eso que usaremos una pila de “LinkedList”. En la cual empujaremos cada recordatorio y luego saldremos uno por uno, dándonos el resultado deseado.

import java.util.LinkedList;

public class Main {

    public static void main(String[] args){
        int number = 12223;

        LinkedList<Integer> stack = new LinkedList<Integer>();
        while(number > 0){
            stack.push(number % 10);
            number = number / 10;
        }
        while ((!stack.isEmpty())){
            System.out.println(stack.pop());
        }
    }
}

Resultado:

1
2
2
2
3

String.toCharArray() para obtener el conjunto de carácters

Otra forma de separar los dígitos de un número de int es usar el método toCharArray().

Convertiremos el número entero en una cadena y luego usaremos la cadena toCharArray() para obtener el array de caracteres. Ahora podemos imprimir todos los caracteres uno por uno. Más tarde podemos convertir los caracteres de nuevo en el formato entero.


public class Main {

    public static void main(String[] args){

        int number1 = 12223;
      
        String number = String.valueOf(number1);

        char[] digits1 = number.toCharArray();

        for(int i = 0; i < digits1.length; i++) {
            System.out.println(digits1[i]);
        }
    

    }
}

Resultado:

1
2
2
2
3

number.split("(?<=.)") Método para obtener el array de cadenas y luego dividirlas

Este método es similar al anterior, pero aquí estamos usando split, una función de String.

public class Main {

    public static void main(String[] args){

        int number1 = 12223;

        String number = String.valueOf(number1);

        String[] digits = number.split("(?<=.)");

        for(int i = 0; i < digits.length; i++) {
            System.out.println(digits[i]);
        }
    }

}

Resultado:

1
2
2
2
3

Separar los dígitos de una Int usando Recursión

Podemos usar la técnica de recursividad para sacar los dígitos de un int de una manera más directa.

El método recursion() toma el número como argumento y luego se llama a sí mismo dividiendo el número por 10. Es el número de veces que el método será llamado.

public class Main {

    public static void main(String[] args) {
        recursion(5543);
    }

    public static void recursion(int number) {
        if(number > 0) {
            recursion(number/10);
            System.out.printf(number%10);
        }
    }

}

Resultado:

1
2
2
2
3

Artículo relacionado - Java Int

  • Convertir Int a Double en Java
  • Cómo comprobar si una cadena es un entero en Java