【问题标题】:Padding NSString not working填充 NSString 不起作用
【发布时间】: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 风格的字符串。

【问题讨论】:

    标签: objective-c ios nsstring


    【解决方案1】:

    这是一种方法:

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

    【讨论】:

    • 好的文斯!!这正是我所需要的,非常感谢。我没有意识到该方法存在。
    猜你喜欢
    • 2015-02-09
    • 2018-01-19
    • 2012-08-02
    • 2014-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-18
    • 2014-12-19
    相关资源
    最近更新 更多