填充 NSString 不起作用

Posted

技术标签:

【中文标题】填充 NSString 不起作用【英文标题】:Padding NSString not working 【发布时间】:2011-12-27 07:21:44 【问题描述】:

我已经读过,左填充NSString 你需要做的就是:

NSString *paddedStr = [NSString stringWithFormat:@"%-20.20@ %-20.20@", 
                          aString, anotherSting];

但是,这不起作用!我不知道为什么。我尝试了很多组合都没有成功。例子:

NSString *paddedStr = [NSString stringWithFormat:@"%-20s@", " ", myString];

但这种方式是丑陋的……丑陋的。它只是在字符串(myString)之前附加了 20 倍的字符(“”),这不是我们需要的吗?

目标是使 NSString 格式化为显示两列或多列,每列 20 个字符,无论一行中字符串的长度如何。

示例目标输出:

Day       Hour      Name      Age

有人知道如何正确执行此操作吗?

我正在使用 ARC 和 ios 5。

实际上,格式化字符串将使用NSFileHandle 写入文件。

谢谢大家!!

编辑:

我注意到这是可行的:

NSString *str = [NSString stringWithFormat:@"%-10.10s %-10.10s", 
                    [strOne UTF8String], [strTwo UTF8String]];

但是...我们也不想要 C 风格的字符串。

【问题讨论】:

【参考方案1】:

这是一种方法:

NSString *paddedStr = [NSString stringWithFormat:@"%@%@", 
                       [@"day" stringByPaddingToLength:20
                                            withString:@" "
                                       startingAtIndex:0], 
                       [@"Hour" stringByPaddingToLength:20
                                             withString:@" "
                                        startingAtIndex:0]];

【讨论】:

好的文斯!!这正是我所需要的,非常感谢。我没有意识到该方法存在。

以上是关于填充 NSString 不起作用的主要内容,如果未能解决你的问题,请参考以下文章

pathForResource 不起作用

NSString concat 在设备上不起作用

使用componentsSeparatedByString以#开头的NSString不起作用

从 NSDictionary 获取 JSON 值并放入 NSString 不起作用

ios文件写入不起作用

React Native - 为啥填充不起作用?