[英]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.