C# 输出数组/表格时格式化占位符{0,-5}中-5的作用是什么?
控制台格式化占位符对齐参数的具体作用
你代码里{0, -5}中的-5是.NET字符串格式化语法里的对齐宽度配置项,就是帮你把控制台输出的内容对齐排整齐、避免错位的参数。
它的具体运行规则可以拆为以下几点:
- 占位符的完整语法结构为
{元素索引[,对齐宽度][:格式指定符]},其中0对应要填充的参数在传入参数列表中的序号(从0开始计数),逗号后面跟随的数值就是对齐宽度配置 - 对齐宽度的正负直接决定内容的对齐方向:
- 传入正数值时,内容会在指定的总宽度内右对齐,内容长度不够的部分会在左侧补空格。比如用
{0,5}格式化长度为2的字符串"ab",最终输出就是" ab"(前面补3个空格,凑满5个字符的总宽度) - 传入负数值时,内容会在指定的总宽度内左对齐,内容长度不够的部分会在右侧补空格。你代码里的
-5就是指:给当前输出的数组元素预留总长度为5个字符的显示宽度,内容靠左侧放,内容本身长度不够5个字符时,自动在右边补空格凑够宽度
- 传入正数值时,内容会在指定的总宽度内右对齐,内容长度不够的部分会在左侧补空格。比如用
- 实际写表格输出逻辑时,这个参数最核心的作用,就是解决控制台输出时,因为每个单元格的内容长度不一样导致列歪掉的问题。比如同样输出数字12、123、1,用
-5格式化后得到的结果分别是"12 "、"123 "、"1 ",逐行逐列输出时每列的边界都是齐平的,不会出现长短内容挤到一起的情况 - 有个容易踩的细节:如果单元格内容本身的长度已经超过了设置的对齐宽度,这个参数不会把超出的内容裁掉,会直接输出完整的原始内容。比如长度为6的内容"abcdef",就算设置了宽度5,也会完整输出全部6个字符。
内容的提问来源于stack exchange,提问作者Mia
相关产品推荐
相关产品推荐

