Javaで桁数を数値を持ってくる

| Comments

Javaで、数値の桁数をとってくるのに非常に難儀したお話。

やりたいこととしては、各桁の数字と、それが何の位なのかってのが欲しかったのです。

で、やってみると、数値を一桁ずつ取れないし、charに直しても、Integer.valueOf(charA)とかってやると文字コードの数字がとれて使えないしで困りました。

結果的にこんなカンジに。。。

1
2
3
4
5
6
7
8
private List<Number> createNumber(int input) {
		List<Number> list = new ArrayList<>();
		int inputLength = String.valueOf(input).length();
		for(int i=0; i < inputLength; i++){
			list.add(new Number(pow(i), Integer.valueOf(String.valueOf(input).substring(inputLength-1 - i, inputLength - i))));
		}
		return list;
	}

適当ですがオブジェクトはこんなカンジ。

1
2
3
4
5
6
7
8
9
10
11
12
public class Number {
	private final int figure;
	private final int number;
	
	public Number(int figure, int number) {
		super();
		assert(figure%10 == 0);//1,10,100,1000とか入る
		this.figure = figure;
		
		assert(number/10 == 0);//0〜9が入る
		this.number = number;
	}

もっとうまい方法あるのかな?

Comments