如何使用stringWithFormat填充字符串

zac*_*urn 6 objective-c stringwithformat ios

我希望能够使用空格右对齐字符串.我必须能够使用该stringWithFormat:方法.

到目前为止,我已经尝试了推荐的格式,它似乎不起作用:[NSString stringWithFormat:@"%10@",@"test"].

我希望这会返回一个有六个空格后跟"test"的字符串,但我得到的只是"test",没有空格.

das*_*ght 5

似乎stringWithFormat忽略了%@格式说明符的大小调整请求.但是,%s说明符正常工作:

NSString *test = @"test";
NSString *str = [NSString stringWithFormat:@"%10s", [test cStringUsingEncoding:NSASCIIStringEncoding]];
NSLog(@"'%@'", str);
Run Code Online (Sandbox Code Playgroud)

这打印' test'.

  • @zachzurn请记住,`%@`不是IEEE规范的一部分.所以他们可以说他们遵循规范(因为他们这样做)加上他们为Objective-C对象增加了对%@的支持.我刚刚提交了一个错误报告,要求对`%@`和`%s`提供相同的修饰符支持. (4认同)
  • 由于`NSString`可以包含任何Unicode字符,因此最好使用`[test UTF8String]`而不是转换为ASCII. (2认同)