Quebrar número

quero quebrar um número no formato moeda em várias partes armazenando num array, por exemplo:

eles tem que ser quebrados deste jeito:

884545.45
int [0] = 45
int [1] = 545
int [2] = 884

88548.87
int [0] = 87
int [1] = 548
int [2] = 88

14.00
int [0] = 00
int [1] = 14

5837579147.88
int [0] = 88
int [1] = 147
int [2] = 579
int [3] = 375
int [4] = 58

ou seja, de três em três depois do ponto.

Tem o método “bonito” e o “nem tão bonito assim”, qual você prefere?

import java.text.*;

class Invert {
     public static void main(String[] args) {
         double n = 5837579147.88;
         NumberFormat nf = new DecimalFormat ("#,###.00");
         String s = nf.format (n);
         String[] parts = s.split ("[,.]");
         int[] intParts = new int [parts.length];
         for (int i = 0; i &lt parts.length; ++i) {
             intParts[i] = Integer.parseInt (parts[parts.length-i-1]);
         }
         for (int i = 0; i &lt intParts.length; ++i) {
             System.out.println (intParts[i]);
         }
     }
}