C# 如何在C中使用字符串格式填充对齐字符串列#

C# 如何在C中使用字符串格式填充对齐字符串列#,c#,string,string-formatting,C#,String,String Formatting,我使用字符串格式填充以特定格式显示列(即列之间的距离) 它适用于标准的固定行长度 012345IL 1 112345KS 0 212345CO 1 312345CA 1 412345IL 1 512345KS 0 612345CO 1 712345CA 1 812345IL 1 912345KS 0 1012345CO 1 1112345CA 1 但是当ID变为两位数并且最后一行有点移位时,问题就来

我使用字符串格式填充以特定格式显示列(即列之间的距离)

它适用于标准的固定行长度

012345IL     1
112345KS     0
212345CO     1
312345CA     1
412345IL     1
512345KS     0
612345CO     1
712345CA     1
812345IL     1
912345KS     0
1012345CO     1
1112345CA     1
但是当ID变为两位数并且最后一行有点移位时,问题就来了。 我期望的格式是

012345IL     1
112345KS     0
212345CO     1
312345CA     1
412345IL     1
512345KS     0
612345CO     1
712345CA     1
812345IL     1
912345KS     0
1012345CO    1
1112345CA    1

我尝试了padright和padleft,但没有解决这个问题,我对另一个有地址的字符串也有同样的问题,当地址长度增加时,最后一列会改变。是否有其他方法或内置C#函数来实现?

您的字符串。Format已正确格式化您的字符串。{0,5}允许第一个参数包含5个字符。这将在行首为一位数ID提供4个空格,为两位数ID提供3个空格。也许这是如何显示字符串的问题

但是,您所要求的格式显示的内容略有不同。
试试这个:

string firstGroup = $"{ID}{ZIP}{State}";
String.Format($"{firstGroup,-13}{Flag}");

您的String.Format已正确设置了字符串的格式。{0,5}允许第一个参数包含5个字符。这将在行首为一位数ID提供4个空格,为两位数ID提供3个空格。也许这是如何显示字符串的问题

但是,您所要求的格式显示的内容略有不同。
试试这个:

string firstGroup = $"{ID}{ZIP}{State}";
String.Format($"{firstGroup,-13}{Flag}");

一个更好的方法是字符串计数并使用空格代替填充。因此,如果ID大小增加,下一列的位置将保持不变。@Mohithrivastava您能用您的概念原型回答吗?您如何显示您的结果?因为我在每个结果前面看到填充的字符串(空格),这使它们成为您想要的内容。添加0不会影响我的格式的输出。更好的方法是字符串计数并使用空格而不是填充。因此,如果ID大小增加,下一列的位置将保持不变。@Mohithrivastava您能用您的概念原型回答吗?您如何显示您的结果?因为我在每个结果前面看到填充字符串(空格),这使它们成为您想要的。添加0不会影响我的格式的输出。这个语法属于c#?@berdem:是的,它被称为。该语法是属于c#的吗?@berdem:是的,它被称为。自那时以来,它一直得到支持。