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

Rupam Yadav 12 octubre 2023
  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
Cómo obtener los dígitos separados de un número Int en Java

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(12223);
  }

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

Resultado:

1
2
2
2
3
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn

Artículo relacionado - Java Int