objective-c – 使用NSString stringWithFormat的动态字符串格式

我一直在尝试制作一个动态的字符串格式,以便通过用户选项的精度或填充可以有些用户定义.

一个例子包括,以24小时时间格式填充前导零.在正常时间格式中,小时可以由一位数字表示,也可以用零填充数字.这以字符串格式表示:

...stringWithFormat:@"Hour: %02i",hour   // leading zero padded

...stringWithFormat:@"Hour: %i",hour     // not leading zero padded

我想要实现的是一个包含@“”或@“02”的变量,并且该变量以%和i之间的格式字符串呈现.

我已经做了几个实验,只是似乎不能这样做,并开始认为这是不可能的stringWithFormat.

我试过了:

… stringWithFormat:@“小时:%% @ i”,填充,小时

… stringWithFormat:@“小时:%@%i”,小时

和别的.

有任何想法吗?

解决方法

一个更好的方法来做到这一点.
... stringWithFormat:@"Hour: %0*i",length,hour]; // note the asterisk

其中length是你想要的数字数.使用1得不到前导零,使用2根据需要使用前导零来获得长度为2的长度.

FYI – 解决您最初尝试的两个步骤:

Nsstring *dynFmt = [Nsstring stringWithFormat:@"Hour: %%%@i",padding];
Nsstring *res = [Nsstring stringWithFormat:dynFmt,hour];

相关文章

本程序的编译和运行环境如下(如果有运行方面的问题欢迎在评...
水了一学期的院选修,万万没想到期末考试还有比较硬核的编程...
补充一下,先前文章末尾给出的下载链接的完整代码含有部分C&...
思路如标题所说采用模N取余法,难点是这个除法过程如何实现。...
本篇博客有更新!!!更新后效果图如下: 文章末尾的完整代码...
刚开始学习模块化程序设计时,估计大家都被形参和实参搞迷糊...