将字符串格式化为类似表格
本文关键字:表格 字符串 格式化 | 更新日期: 2023-09-27 18:29:30
我有一个字符串,我已经将其初始化为空,并构建如下所示的字符串。我还得到了我想要的首选输出,最好的方法是什么,因为这将以电子邮件的形式发送。考虑到公司名称会有不同的长度。
正在构建的字符串
foreach(string s in array)
{
emailBody += s + " Success" + Environment.NewLine;
}
字符串的输出
CompanyName Success
CompanyName Success
CompanyName Success
CompanyName Success
CompanyName Success
CompanyName Success
CompanyName Success
想要低于的输出
CompanyName | Success
CompanyName | Success
CompanyName | Success
CompanyName | Success
CompanyName | Success
CompanyName | Success
CompanyName | Success
给定的溶液输出
qxeawgentina Success
TweseqmeChile Success
Vidqwedal Success
qwebr Success
Doqa_brasil Success
Sedaqqagentina Success
KnaqwertArtina Success
PadLeft是一个很好的函数,可以用于类似的东西。你可以这样做:
StringBuilder myString = new StringBuilder();
foreach(string s in array)
{
myString.Append(s + "Success".PadLeft(15 - s.Length) + Environment.NewLine);
}
emailBody = myString.ToString();
将常量15更改为集合中最长的CompanyName,否则PadLeft
在变为负数时将引发异常。
(正如评论中提到的,StringBuilder
也是一个好主意)
看看这个StackOverflow问题
基本上你可以使用字符串。格式化并指定每个占位符的宽度,如下所示:
// Prints "--123 --"
string.Format("--{0,-10}--", 123);
// Prints "-- 123--"
string.Format("--{0,10}--", 123);
编辑:将此应用于您的示例:
foreach(string s in array)
{
emailBody += string.Format("{0, 25} | Success", s) + Environment.NewLine;
}
修剪字符串并计算最长的字符串长度:
int maxLength = 0;
foreach(string s in array)
{
l = s.Trim().Length;
if (l > maxLength)
{
maxLength = l;
}
}
foreach(string s in array)
{
emailBody += System.Format("{0,-" + maxLength.ToString() + "} | Success" + Environment.NewLine, s.Trim());
}