帮助字符串操作

时间:2011-05-21 07:41:25

标签: c# string

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

我简化了下面的示例,但基本上我将行附加到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

我怎样才能做到这一点?

提前致谢。

5 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

查看Composite formating

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

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

  

可选的对齐组件是a   有符号整数表示   首选格式化字段宽度。如果   对齐的值小于   格式化字符串的长度,   对齐被忽略和长度   格式化的字符串用作   场宽。格式化的数据   如果对齐,则字段右对齐   正对齐和左对齐,如果对齐   是否定的。如果需要填充,   使用了空白区域。逗号是   如果指定了对齐,则需要。

答案 2 :(得分:0)

Customer1.name.PadRight(15, ' ')

对其他值也这样做。

答案 3 :(得分:0)

像这个例子一样使用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

答案 4 :(得分:0)

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