格式字符串,带前导零的整数

Posted

技术标签:

【中文标题】格式字符串,带前导零的整数【英文标题】:Format string, integer with leading zeros 【发布时间】:2010-06-06 17:40:42 【问题描述】:

我想将一个整数值转换为带有前导零的字符串(如果需要),这样该字符串总共有 3 个字符。例如,5 将变为 "005"10 将变为 "010"

我试过这段代码:

NSString* strName = [NSString stringWithFormat:@"img_00%d.jpg", i];

这部分有效,但如果i 的值为10,例如,结果是img_0010.jpg,而不是img_010.jpg

有没有办法做我想做的事?

【问题讨论】:

【参考方案1】:

使用格式字符串"img_%03d.jpg" 获取具有三位数字和前导零的十进制数。

【讨论】:

澄清:“3”可以替换为任何数字,以使显示值中的总位数。例如,%06d 会产生类似000001 的值。【参考方案2】:

为了后代:这适用于十进制数。

NSString *nmbrStr = @"0033620340000" ;
NSDecimalNumber *theNum = [[NSDecimalNumber decimalNumberWithString:nmbrStr]decimalNumberByAdding: [NSDecimalNumber one]] ;     
NSString *fmtStr = [NSString stringWithFormat:@"%012.0F",[theNum doubleValue]] ;

虽然这些信息很难找到,但它实际上记录在格式基础知识的第二段中。查找 % 字符。

https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/Strings/Articles/FormatStrings.html

【讨论】:

这里注意@"%012.0F"中的“12”是指总位数,所以包括小数点和右边的任何数字。 添加到 bcattle 的评论中,这还包括 right 的任何内容。要显示 -012.34,您必须使用 @"%07.2f"

以上是关于格式字符串,带前导零的整数的主要内容,如果未能解决你的问题,请参考以下文章

填充数字格式的时间表达式,具有带前导零的可变分隔符

以带前导零的数字序列创建文件名的字符向量

javascript Date format(js日期格式化)

格式化包含带前导零的小数点的数字

如何格式化带有前导零的Java字符串?

日期格式: