Java求水仙花数 利用for循环

题目:打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1的三次方+ 5的三次方 +3 的三次方。
程序分析:利用 for循环控制100-999个数,每个数分解出个位,十位,百位。


    public static void main(String[] args) {
        List list = new ArrayList();
        for(int i = 100; i < 999; i++){
            String str = String.valueOf(i);
            if(test(str))
                list.add(i);
        }
        System.out.println(list);
    }

    public static boolean test(String str){
        int sum = 0;
        for(int i = 0; i < str.length(); i++){
            String j = String.valueOf(str.charAt(i));
            int k = Integer.valueOf(j);
            sum += k*k*k;
        }
        if(sum == Integer.valueOf(str)){
            return true;
        }
        return false;
    }