C#中怎么设置多个字符串同样的宽度?
我想让7个字符串3行3列的显示并左对齐,字符串长度不一,不足7个用空格不足。
如:
111111 111111 111111
aaaa 显示并左对齐 aa
a
现在的问题是显示的时侯汉字的宽度跟英文字母的宽度不一致,导致显示的时侯无法左对齐。我现在的做法是:
System.Text.StringBuilder sb = new StringBuilder();
for (int i = 1; i <= items.Count; i++)
{
if (i % 3 == 0)
{
sb.Append(items[i-1]+ "\n ");
}
else
{
sb.Append(items[i-1].PadRight(7, ' '));
}
}
m_ApplyData = sb.ToString();
--------------------------------
有谁能帮帮我呢???
------解决方案--------------------使用格式化字符串,含义有点象 C 的 printf
StringBuilder sb = new StringBuilder();
sb.AppendFormat( "{0,-7} ", "123 ").AppendFormat( "{0,-7} ", "4567 ").AppendFormat( "{0,-7} ", "89 ").AppendLine();
// ...
------解决方案--------------------格式项语法
所有格式项都采用下面的形式。
{index[,alignment][:formatString]}
必须使用成对的大括号(“{”和“}”)。
格式项组件
格式项由下面的组件构成。
索引组件
强制“索引”组件(也叫参数说明符)是一个从 0 开始的数字,可标识值列表中对应的元素。也就是说,参数说明符为 0 的格式项格式化列表中的第一个值,参数说明符为 1 的格式项格式化列表中的第二个值,依次类推。
通过指定相同的参数说明符,多个格式项可以引用值列表中的同一个元素。例如,通过指定类似于“{0:X} {0:E} {0:N}”的源字符串,可以将同一个数值格式化为十六进制、科学表示法和数字格式。
每一个格式项都可以引用所有的参数。例如,如果有三个值,则可以通过指定类似于“{1} {0} {2}”的源字符串来格式化第二、第一和第三个值。格式项未引用的值会被忽略。如果参数说明符指定了超出值列表范围的项,将导致运行时异常。
对齐组件
可选的“对齐”组件是一个带符号的整数,指示首选的格式化字段宽度。如果“对齐”值小于格式化字符串的长度,“对齐”会被忽略,并且使用格式化字符串的长度作为字段宽度。如果“对齐”为正数,字段的格式化数据为右对齐;如果“对齐”为负数