繁体   English   中英

帮助字符串操作

[英]Help with string manipulation

我正在做一些数据操作和记录已更新的记录及其字段。

我简化了下面的示例,但基本上我将行附加到stringbuilder上,然后将其写入文本文件

我追加行:

changedValues.AppendLine(string.Format("NEW VALUE: {0} | OLD VALUE {1}", Customer1.name, Customer2.name));
changedValues.AppendLine(string.Format("NEW VALUE: {0} | OLD VALUE {1}", Customer1.number, Customer2.number));
changedValues.AppendLine(string.Format("NEW VALUE: {0} | OLD VALUE {1}", Customer1.phone, Customer2.phone))

我的问题是姓名,电话和号码(还有更多)的长度不同,因此日志文件如下所示:

NEW VALUE: blabla | OLD VALUE blablabla
NEW VALUE: 123123123123123 | OLD VALUE 134
NEW VALUE: 213213232 | OLD VALUE 12333322333

这比看起来像这样更难以阅读:

NEW VALUE: blabla          | OLD VALUE blablabla
NEW VALUE: 123123123123123 | OLD VALUE 134
NEW VALUE: 213213232       | OLD VALUE 12333322333

我该如何实现?

提前致谢。

您应该预先定义可能的最长第一个值。 例如20:

sb.AppendFormat("NEW VALUE: {0,-20}| OLD VALUE {1}\r\n", Customer1.name, Customer2.name);

看看复合格式

changedValues.AppendLine(string.Format("NEW VALUE: {0:-20} | OLD VALUE {1}", Customer1.name, Customer2.name));

格式为{ index[,alignment][:formatString]}

可选的对齐方式组件是一个带符号的整数,指示首选的格式化字段宽度。 如果alignment的值小于格式化字符串的长度,则忽略对齐,并将格式化字符串的长度用作字段宽度。 如果对齐方式为正,则该字段中的格式化数据将右对齐,如果对齐方式为负,则将其左对齐。 如果需要填充,则使用空格。 如果指定对齐方式,则必须使用逗号。

Customer1.name.PadRight(15, ' ')

并对其他值执行相同的操作。

像下面的例子一样使用PadRight:

static void Main()
{
string[] a = new string[]
{
    "cat",
    "poodle",
    "lizard",
    "frog",
    "photon"
};

// Output the header.
Console.Write("Key".PadRight(15));
Console.WriteLine("Value");

// Output array.
foreach (string s in a)
{
    Console.Write(s.PadRight(15));
    Console.WriteLine("noun");
}
}
Output

Key            Value
cat            noun
poodle         noun
lizard         noun
frog           noun
photon         noun

如果知道值的最大宽度,则可以使用String.PadRight()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM