Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 字符串生成器,在C'中的右侧具有固定长度的字符和空格;_C#_Padding_Stringbuilder - Fatal编程技术网

C# 字符串生成器,在C'中的右侧具有固定长度的字符和空格;

C# 字符串生成器,在C'中的右侧具有固定长度的字符和空格;,c#,padding,stringbuilder,C#,Padding,Stringbuilder,我需要字符串生成器帮助实现以下场景,我想创建DTA文档,以便 var name = GetName() ---// Get the name from database Ex- "ABC Gmbh" StringBuilder _header = new StringBuilder(); _header.Append(string.Format("{0,4}", "0128")); _header.Append(string.Format("{0,20}", name )); 输出为“012

我需要字符串生成器帮助实现以下场景,我想创建DTA文档,以便

var name = GetName() ---// Get the name from database Ex- "ABC Gmbh"

StringBuilder _header = new StringBuilder();
_header.Append(string.Format("{0,4}", "0128"));
_header.Append(string.Format("{0,20}", name ));
输出为“0128----------ABC Gmbh”

但我需要像“0128ABC Gmbh------------”这样的输出

注-“-”指的是一个空白。所以我需要右边的剩余空格,而不是左边的

您可以使用和,而不是
String.Format

_header.Append("128".PadLeft(4, '0'));
_header.Append("ABC Gmbh".PadRight(20, ' '));

输出:
“0128ABC Gmbh”

终于找到了解决方法

var name=GetName()--//从数据库Ex“ABC Gmbh”获取名称

Format(“{0,-20}”,“ABC Gmbh”)将字符串ALIGN left side并将空格设置为right
Padright不是正确的方法,因为在这种情况下,每次字符长度都可能不同。

使用StringBuilder还有一个AppendFormat方法…使用Padright,您可以提供固定长度的空格。这里的name是一个应该动态更改的变量。使用PadRight可以指定固定长度的空格。此处的名称可以是一个应动态更改的变量。所以我们不能说每个空间的马赫数time@Jayakaran:我不明白,
PadRight(20,”)
意味着它最多可以加20个空格,但前提是字符串的字符数较少。因此,如果字符串已经有19个字符长,则只会添加一个空格。
StringBuilder _header = new StringBuilder();
_header.Append(string.Format("{0,4}", "0128"));
_header.Append(string.Format("{0,-20}", name ));