是否可以使用格式字符串像数字一样对齐NSString? [英] Is it possible to use format strings to align NSStrings like numbers can be?

查看:108
本文介绍了是否可以使用格式字符串像数字一样对齐NSString?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆