【问题标题】:String builder with fixed length of characters and spaces in right side in C'C'中右侧具有固定长度的字符和空格的字符串生成器
【发布时间】:2015-02-14 21:41:58
【问题描述】:

我需要字符串生成器帮助以下场景,我想创建 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-----------”这样的输出

注意 - “-”指的是空白区域。所以我需要右侧的其余空间,而不是左侧

【问题讨论】:

  • StringBuilder 也有一个 AppendFormat 方法...
  • 使用 PadRight 你可以给出固定长度的空格。这里的 name 是一个应该动态变化的变量。

标签: c# padding stringbuilder


【解决方案1】:

终于找到办法了,

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

StringBuilder _header = new StringBuilder();
_header.Append(string.Format("{0,4}", "0128"));
_header.Append(string.Format("{0,-20}", name ));

string.Format("{0,-20}", "ABC Gmbh") 将字符串对齐左侧并将空格设置为右侧 Padright 不是正确的方法,因为在这种情况下,字符长度每次都可能不同

【讨论】:

    【解决方案2】:

    您可以使用PadLeftPadRight 代替String.Format

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

    输出:"0128ABC Gmbh "

    【讨论】:

    • 使用 PadRight 你可以给出固定长度的空格。这里的 name 可以是一个应该动态变化的变量。所以我们不能说每次空间的马赫长度
    • @Jayakaran:我不明白,PadRight(20, ' ') 的意思是它最多可以添加 20 个空格,但前提是字符串的字符较少。因此,如果字符串已经有 19 个字符长,它只会添加一个空格。
    猜你喜欢
    • 2012-11-08
    • 1970-01-01
    • 1970-01-01
    • 2021-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多