2014-09-04 33 views
-2

在java中,我有java.text.DecimalFormat中相當於目標C

String snumber = null; 
String mask = "000000000000"; 
DecimalFormat df = new DecimalFormat(mask); 
snumber = df.format(number); //'number' is of type 'long' passed to a function 
           //which has this code in it 

我不知道在Java中DecimalFormat操作,並因此發現很難寫一個等效的OBJ C代碼。

我該如何做到這一點?任何幫助,將不勝感激。

回答

1

對於特定的情況下,你可以使用一些C風格的魔術Objective-C的內部:

long number = 123; 
int desiredLength = 10; 

NSString *format = [NSString stringWithFormat:@"%%0%dd", desiredLength]; 
NSString *snumber = [NSString stringWithFormat:format, number]; 

結果0000000123

此處的格式將爲%010d
10d表示您將有10個數字與右對齊。
0開始時會導致所有「空」點將被填充0.
如果number小於desiredLength,則它的格式與原來一樣(沒有前導零)。

當然,上面的代碼只有當你想讓具有指定長度的數字填充空格時纔有效。
對於其他場景,您可以例如編寫自己的自定義類,它將使用適當的printf/NSLog格式生成您想要的格式化字符串。
在Objective-C中,不必使用DecimalFormat「掩碼」,而必須使用字符串格式。