我希望能够使用空格右对齐字符串。我必须能够使用该stringWithFormat:
方法。
到目前为止,我已经尝试了推荐的格式,但它似乎不起作用:[NSString stringWithFormat:@"%10@",@"test"]
.
我希望这会返回一个包含六个空格后跟“test”的字符串,但我得到的只是没有空格的“test”。
我希望能够使用空格右对齐字符串。我必须能够使用该stringWithFormat:
方法。
到目前为止,我已经尝试了推荐的格式,但它似乎不起作用:[NSString stringWithFormat:@"%10@",@"test"]
.
我希望这会返回一个包含六个空格后跟“test”的字符串,但我得到的只是没有空格的“test”。
似乎stringWithFormat
忽略了%@
格式说明符的大小调整请求。但是,%s
说明符可以正常工作:
NSString *test = @"test";
NSString *str = [NSString stringWithFormat:@"%10s", [test cStringUsingEncoding:NSASCIIStringEncoding]];
NSLog(@"'%@'", str);
这打印' test'
。
它是 C 风格的格式。%nd 表示宽度为 n。
检查以下代码。
NSLog(@"%10@",[NSString stringWithFormat:@"%10@",@"test"]);
NSLog(@"%@",[NSString stringWithFormat:@" %@",@"test"]);
NSLog(@"%10@", @"test");
NSLog(@"%10s", [@"test" cStringUsingEncoding:[NSString defaultCStringEncoding]]);
NSLog(@"%10d", 1);
NSString *str = @"test";
int padding = 10-[str length]; //6
if (padding > 0)
{
NSString *pad = [[NSString string] stringByPaddingToLength:padding withString:@" " startingAtIndex:0];
str = [pad stringByAppendingString:str];
}
NSLog(@"%@", str);