如何在NSString中添加前导零?

3

我看到了很多答案,但它们都将整数转换为字符串等等。

我有一个NSString,想在前面添加零。

NSString *hexString = [NSString stringWithFormat:@"%2X",abc];

如果一个十六进制字符串的长度小于3,则在其前面添加零,返回另一个字符串。感谢您的帮助。

为什么要在事后向 hexString 添加零?为什么不在创建 hexString 时就添加零呢? - rmaddy
我在创建字符串时如何添加零?你能发一下代码吗?感谢你的帮助。 - backbencher
1个回答

6
如果你想将变量abc中的int值转换为带有前导零以确保它使用3个数字的3位十六进制值,则可以执行以下操作:
NSString *hexString = [NSString stringWithFormat:@"%03X", abc];

我有一个印象,%2x 可以转换成十六进制,但是为什么单个的 "x" 也可以呢?谢谢你的回答,能否请你帮我理解一下。 - backbencher
X 表示转换为十六进制。 3 表示你想要三个十六进制数字。 0 表示填充结果,使您获得三个数字的足够零 (如果不使用零,则将用空格填充结果以得到三个字符)。 %2x 将给出一个十六进制数,需要两个数字,并在需要时用空格填充。 - rmaddy
谢谢,Maddy。所以如果我想将一个数字转换为十六进制,并且在转换后的十六进制字符串长度小于4时添加4个前导零,那么我需要使用类似于%04x的东西,只是为了澄清一下。讲解得非常好。 - backbencher
是的,没错。试验一下吧。尝试不同的格式。查看NSString stringWithFormat方法的文档。有链接可以带你到可能的格式说明的完整规范。 - rmaddy
@rmaddy 看看这里的区别 0xff0xFF,猜猜 x 和 X 分别代表什么 :) 祝编码愉快。 - Ol Sen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接