Mad*_*vad 9 objective-c stringwithformat ios
我一直在尝试创建一个动态字符串格式,以便通过用户选项精度或填充可以在某种程度上由用户定义.
一个例子包括,以24小时时间格式填充前导零.在正常时间格式中,小时数可以用一个数字表示,也可以用零填充的数字表示.这以字符串格式表示:
...stringWithFormat:@"Hour: %02i", hour // leading zero padded
Run Code Online (Sandbox Code Playgroud)
和
...stringWithFormat:@"Hour: %i", hour // not leading zero padded
Run Code Online (Sandbox Code Playgroud)
我想实现是有包含一个variable @""或@"02"并在之间的格式字符串呈现变量%和i.
我做了几个实验,似乎无法做到这一点,我开始认为这是不可能的stringWithFormat.
我试过了:
...stringWithFormat:@"Hour: %%@i", padding, hour
...stringWithFormat:@"Hour: %@%i", padding, hour
和别的.
有任何想法吗?
rma*_*ddy 34
有一个更好的方法来做到这一点.
... stringWithFormat:@"Hour: %0*i", length, hour]; // note the asterisk
Run Code Online (Sandbox Code Playgroud)
length你想要的位数在哪里.使用1得到没有前导零,使用2如需要得到2的长度与前导零.
仅供参考 - 要解决您最初尝试的问题,您需要分两步完成:
NSString *dynFmt = [NSString stringWithFormat:@"Hour: %%%@i", padding];
NSString *res = [NSString stringWithFormat:dynFmt, hour];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9601 次 |
| 最近记录: |