2015年4月4日 星期六

【筆記】Java把長整數拆成一個一個數字

今天同事跑來問拜歐,如何把一個long型態的長整數,比如說,把5678拆成5678等四個數字要怎麼做,其實先把長整數使用String.valueOf轉成字串,再使用String類別中的charAt就可以輕鬆辦到。
package idv.jk.util.lang;

public class LongUtils
{
    public static int[] spitLongToIntArray(long inNumber)
    {
        String strNumber = String.valueOf(inNumber);

        int length = strNumber.length();
        int[] results = new int[length];

        for(int i = 0; i < length; i++)
        {
            results[i] = Character.getNumericValue( strNumber.charAt(i) );
        }

        return results;
    }

    //test
    public static void main(String[] argv)
    {
        for(int i : spitLongToIntArray(5678))
        {
            System.out.print(i + ",");
        }
    }
}
執行結果如下:
5,6,7,8,
這裡要注意的是,若傳入的是負數,字元-經由Character.getNumericValue,關於該方法更詳細的說明,可以參考Java文件,如傳入-5678,執行結果則為:
-1,5,6,7,8,
若有處理負數的需要,則需多加一些處理。

沒有留言: