Objectiv-C学习笔记-NSLog中左对齐与右对齐

来源:互联网 发布:2016nba夏季联赛数据 编辑:程序博客网 时间:2024/06/10 18:59

其实这是C中的特性

想要在Terminal中打印出如图案

===============================|                             || Siemen Liu                  || siemenliu@gmail.com         ||                             || O                         O |===============================

其中带有Siemen Liu这行与siemenliu@gmail.com这行是不定长度的变量,输出时还要保持右侧竖线与其他行保持对齐
NSLog("| %-28s |", [@"Siemen Liu" UTF8String]);NSLog("| %-28s |", [@"siemenliu@gmail.com" UTF8String])

其中%-28s中的28代表输出时始终输出28个字符长度,如果内容不足则用空格代替。

28前面还有一个“-”号,可以理解为左对齐显示,如果不带这个“-”号结果就会是这样

===============================|                             ||                  Siemen Liu ||         siemenliu@gmail.com ||                             || O                         O |===============================

以右对齐显示

还可以看到在输出时把NSString转换成了UTF8的C格式的字符串,这是因为使用%-28@来直接显示NSString是无法到达哦目的,%@会忽略中间数字和符号。所以需要转换下。

那么其实可以说对其输出方面,对象都是不行的,要使用基本类型才可以,整数型可以用%-28i浮点型可以用%-28g等。

update20120813->有关乱码的问题
如果字符串换成中文这样输出就会有乱码问题
如果要使用左右对齐功能暂时不知道有什么方法可以解决乱码问题
但是直接通过NSLog("%@", @"小明");是不会出现乱码但也无法使用对齐了

原创粉丝点击