2012-04-02

Force.com : Apex で数値を文字列に変換したい


Apex で数値を文字列に変換したい



○ Integer#format()

Integer i = 12344567890;
System.debug(i.format());
■ 実行結果
1,234,567,890
Integer Methods の説明より
Returns the integer as a string using the locale of the context user
→ 戻り値はユーザのロケールを使用して整数値を文字列とする



◆ メモ

  • てっきり、Java の
    java.lang.Integer.toString(int i) 
    みたいなものだと思っていたら全く違っていた
  • 他も同じっぽい
    • Long#format()
    • Double#format()
    • Decimal#format()



○ String.valueOf(Integer i)

Integer i = 12344567890;
System.debug(String.valueOf(i));
// or
System.debug('' + i);
■ 実行結果
1234567890



◆ メモ

  • Java だと
    java.lang.String.valueOf(int i)
    
    public static String valueOf(int i) {
        return Integer.toString(i);
    }
    
    使うより、
    java.lang.Integer.toString(int i) 
    
    public static String toString(int i) {
        if (i == Integer.MIN_VALUE)
            return "-2147483648";
        int size = (i < 0) ? stringSize(-i) + 1 : stringSize(i);
        char[] buf = new char[size];
        getChars(i, size, buf);
        return new String(0, size, buf);
    }
    
    使ったほうがメソッドの呼び出し回数が減るから後者を使っていたのだけれども迂闊だった
    (たぶん今も、前者のメソッドで後者のメソッドを呼び出していたはず)
  • 時折 Force.com Apex Code Developer's Guide に目を通そう!



◇ 環境

  • Salesforce - Developer Edition - API バージョン 24.0



◇ 参考


0 件のコメント:

コメントを投稿