微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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];

原文地址:https://www.jb51.cc/c/113321.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐