是否可以使用格式字符串像数字一样对齐NSString? [英] Is it possible to use format strings to align NSStrings like numbers can be?
问题描述
我正在使用 NSLog()打印一些表格数据,这些表格数据由 NSString 和关联的整数组成.
I'm using NSLog() to print some tabular data consisting of an NSString and an associated integer.
假设我知道最长单词的长度.
Assume I know the length of the longest word.
是否可以使用格式字符串来获得这种列对齐方式:
Is there a way using format strings to get this kind of column alignment:
word:tree rank:5
word:frog rank:3
word:house rank:2
word:peppercorn rank:2
word:sword rank:2
word:antlion rank:1
我问有关格式化字符串的原因是,我希望找到一种简便的方法来格式化我的贫民窟调试输出.
The reason I'm asking about formatting strings is I'm hoping for a lightweight way to format my ghetto debugging output.
这是我尝试的方法:
NSString *word = @"tree";
NSUInteger rank = 4;
NSString *str = [NSString stringWithFormat:@"word:%-20@ rank:%u", word, rank];
NSLog(@"%@", str);
结果:
单词:树排名:4
完全没有效果.
推荐答案
以下内容似乎可行,但需要从NSString转换为C字符串.
The following seems to work, but requires conversion from your NSString's to C-strings.
NSString *word = @"tree";
NSUInteger rank = 4;
NSString *str = [NSString stringWithFormat:@"word:%-20s rank:%u", [word UTF8String], rank];
NSLog(@"%@", str);
不知道为什么在尝试使用NSString时会忽略字段宽度.
Don't know why the field width is being ignored when trying to use an NSString.
这篇关于是否可以使用格式字符串像数字一样对齐NSString?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!