在Objective-C中将int转换为字符串,同时保留'0'

时间:2011-12-20 04:47:35

标签: iphone objective-c

我正在尝试将int转换为objective-C中的字符串。

我读了关于将int转换为字符串的其他问题,我在我的代码中尝试了这个方法:

-(void)setCounter:(int)count
{
    counterText.text = [NSString stringWithFormat:@"%d",count];
}

但是,如果我想显示一个像'01'这样的数字,0将从转换中取出,并且只显示“1”。有解决方法吗?

4 个答案:

答案 0 :(得分:10)

没有01这样的号码。如果你写

int count = 01;

它与

等效编译
int count = 1;

事实上,请注意:07相当于7,但是011 is equivalent to 9

你可以做的是让stringWithFormat:给你零填充:

[NSString stringWithFormat:@"%02d",count]
如果"02"是2,

应该给你count。要解构它:

% - interpolate the next value here
0 - pad it to the width by placing zeroes on the left side
2 - width is 2 characters
d - it will be an integer. Do it now.

答案 1 :(得分:1)

如果您想要与显示的格式不同,请使用它:

counterText.text = [NSString stringWithFormat:@"%02d",count];

格式字符串有一个巨大的范围。

答案 2 :(得分:0)

如果任何数字从0开始则是八进制表示(0 - 7)。你可以使用下面的行明确地添加零。

  counterText.text = [NSString stringWithFormat:@"0%d",count];

答案 3 :(得分:0)

退房..

NSNumber + numberWithInt

然后: NSNumberFormatter -setMinimumIntegerDigits

然后获取字符串表示形式: NSString -stringFromNumber