Java で整数の桁区切りを取得する方法

  1. % (mod) で与えられた整数値の残りを取得する
  2. 文字の配列を取得するには、String.toCharArray() を用います
  3. number.split("(?<=.)") 文字列の配列を取得して分割するメソッド
  4. 再帰を用いた整数からの桁の分離

Java には、整数を扱うためのメソッドがたくさんあります。ここでは、整数数から一桁ごとに抽出して分離する方法を見ていきましょう。

% (mod) で与えられた整数値の残りを取得する

整数の一桁ごとに剰余メソッドを使うことで、整数の各桁を得ることができます。Java では、% (mod)演算子を使って任意の整数の余りを得ることができます。

しかし、単に余りを取得しただけでは、結果は逆順になってしまいます。これが LinkedList スタックを使う理由である。このスタックでは、一つ一つのリマインダーをプッシュしてから一つずつポップし、目的の結果を得ることができます。

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

出力:

1
2
2
2
3

文字の配列を取得するには、String.toCharArray() を用います

整数から桁数を分離するもう一つの方法は toCharArray() メソッドを使うことです。

整数を文字列に変換し、文字列の toCharArray() を使って文字の配列を取得します。これで、すべての文字を一つずつプリントアウトすることができるようになりました。後で文字を整数形式に変換することができる。


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

    }
}

出力:

1
2
2
2
3

number.split("(?<=.)") 文字列の配列を取得して分割するメソッド

このメソッドは上のものと似ていますが、ここでは String の関数 split を用いています。

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

}

出力:

1
2
2
2
3

再帰を用いた整数からの桁の分離

再帰法を利用して、より簡単な方法で int から桁数を取り出すことができます。

メソッド recursion() は数値を引数に取り、その数値を 10 で割って自身を呼び出します。これはメソッドが呼び出される回数である。

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

}

出力:

1
2
2
2
3

関連記事 - Java Int

  • Java で文字列が整数かどうかを調べる方法
  • Java で Long を Int に変換する方法
  • comments powered by Disqus