HOWTO · Java

Ottieni le cifre separate di un numero Int in Java

Spiega tutti i metodi per separare ogni singola cifra di un numero intero con esempi

In questa pagina

Java offre molti metodi per lavorare con i numeri interi. Vedremo come estrarre e separare ogni singola cifra da un numero int.

% (mod) per ottenere il resto del numero intero fornito

Possiamo ottenere ogni singola cifra di un numero intero utilizzando il metodo del resto. Java ci permette di ottenere il resto di qualsiasi numero intero utilizzando l’operatore % (mod).

Ma semplicemente ottenere il resto ci darà il risultato nell’ordine inverso. È per questo che useremo uno stack LinkedList. In cui spingeremo ogni singolo promemoria e poi pop uno per uno, fornendoci il risultato desiderato.

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

Produzione:

1
2
2
2
3

String.toCharArray() per ottenere la matrice di caratteri

Un altro modo per separare le cifre da un numero int è usare il metodo toCharArray().

Convertiremo il numero intero in una stringa e poi useremo la stringa toCharArray() per ottenere l’array dei caratteri. Ora possiamo stampare tutti i caratteri uno per uno. Successivamente possiamo riconvertire i caratteri nel formato intero.

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]);
    }
  }
}

Produzione:

1
2
2
2
3

Metodo number.split("(?<=.)") per ottenere la matrice di stringhe e quindi dividerla

Questo metodo è simile a quello precedente, ma qui stiamo usando split, una funzione di 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]);
    }
  }
}

Produzione:

1
2
2
2
3

Separare le cifre da un Int utilizzando la ricorsione

Possiamo usare la tecnica della ricorsione per ottenere le cifre da un int in modo più diretto.

Il metodo recursion() prende il numero come argomento e poi chiama se stesso dividendo il numero per 10. È il numero di volte che il metodo verrà chiamato.

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

Produzione:

1
2
2
2
3