スペースを使用して文字列を右揃えにしたいと考えています。stringWithFormat:
メソッドを使用できる必要があります。
これまでのところ、推奨される形式を試しましたが、うまくいかないようです: [NSString stringWithFormat:@"%10@",@"test"]
.
これは、6 つのスペースの後に「test」が続く文字列を返すと予想されますが、取得できるのはスペースのない「test」だけです。
スペースを使用して文字列を右揃えにしたいと考えています。stringWithFormat:
メソッドを使用できる必要があります。
これまでのところ、推奨される形式を試しましたが、うまくいかないようです: [NSString stringWithFormat:@"%10@",@"test"]
.
これは、6 つのスペースの後に「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);