帮助进行字符串操作

本文关键字:操作 字符串 帮助 | 更新日期: 2023-09-27 17:57:03

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

我已经简化了下面的示例,但基本上我将行附加到字符串生成器,然后将其写入文本文件

我附加行:

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]}

可选的对齐组件是 有符号整数,指示 首选格式化字段宽度。如果 对齐值小于 格式化字符串的长度, 对齐方式将被忽略,长度 格式化字符串用作 字段宽度。格式化的数据在 如果对齐方式为 正对齐和左对齐(如果对齐) 为负数。如果需要填充, 使用空格。逗号是 如果指定了对齐方式,则为必需。

使用 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()。

Customer1.name.PadRight(15, ' ')

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