この前、エクセル列名から、位置をもとめたのでその逆をやってみます。 その2 2014/02/01

この前、エクセル列名から、位置をもとめたのでその逆をやってみます。 その2です。
前回は、再帰使ったので、今回はそうでないやり方で。



 このやり方、挑戦して、すぐできなかったので、あきらめたのだけど。
26進数ということだと思うのだが。

メソッドはこんな感じ。
0〜の数値をエクセルの列の英字に変換します。


public static String rpos(final int p) { final StringBuilder builder = new StringBuilder(); final int n = 26;// n進数 int[] a = { p, 0 }; do { a = new int[] { a[0] / n, a[0] % n }; builder.insert(0, (char) ('A' + a[1])); a[0] -= 1; } while (0 <= a[0]); return builder.toString(); }





: