Como obter os dígitos separados de um número Int em Java

Rupam Yadav 12 outubro 2023
  1. % (mod) para obter o restante do número inteiro dado
  2. String.toCharArray() para Obter a array de caracteres
  3. number.split("(?<=.)") Método para obter a array de caracteres e, em seguida, dividi-los
  4. Dígitos Separados de uma Recurssão Int
Como obter os dígitos separados de um número Int em Java

Java oferece muitos métodos para trabalhar com inteiros. Veremos como podemos extrair e separar cada um dos dígitos de um número int.

% (mod) para obter o restante do número inteiro dado

Podemos obter cada um dos dígitos de um número inteiro usando o método restante. Java nos permite obter o restante de qualquer número inteiro utilizando o operador % (mod).

Mas a simples obtenção do restante nos dará o resultado na ordem inversa. É por isso que utilizaremos uma pilha de LinkedList. Na qual empurraremos cada um dos lembretes e depois abriremos um a um, fornecendo-nos o resultado desejado.

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 Obter a array de caracteres

Outra maneira de separar os dígitos de um número int é utilizando o método toCharArray().

Converteremos o número inteiro em uma string e então utilizaremos o toCharArray() da string para obter a array de caracteres. Agora podemos imprimir todos os caracteres um a um. Mais tarde, podemos converter os caracteres de volta ao formato inteiro.

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 obter a array de caracteres e, em seguida, dividi-los

Este método é similar ao acima, mas aqui estamos utilizando o split, uma função do 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

Dígitos Separados de uma Recurssão Int

Podemos usar a técnica de recorrência para tirar os dígitos de uma int de uma forma mais direta.

O método recursion() toma o número como argumento e depois se autodenomina dividindo o número com 10. É o número de vezes que o método será chamado.

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

Artigo relacionado - Java Int