以下Objective C代碼的預期結果是什麼?「stringWithFormat:」的意外結果:
int intValue = 1;
NSString *string = [NSString stringWithFormat:@"%+02d", intValue];
我以爲字符串的值將是「+01」,原來是「+1」。不知何故,格式字符串「+01」中的「0」被忽略。將代碼更改爲:
int intValue = 1;
NSString *string = [NSString stringWithFormat:@"%02d", intValue];
字符串的值現在爲「01」。它確實生成了領先的「0」。但是,如果intValue爲負數,如下所示:
int intValue = -1;
NSString *string = [NSString stringWithFormat:@"%02d", intValue];
字符串的值變爲「-1」,而不是「-01」。
我錯過了什麼嗎?或者這是一個已知的問題?什麼是建議的解決方法? 在此先感謝。
我懷疑是數字給出包括符號,而不是數字的號的域的寬度。 –
@Mark,你是對的。謝謝。 –
@Mark Byers,評論+1。你是對的! – EmptyStack