您好我已经使用C#
StringBuilder
创建了一些写入.txt文件的object
代码,一切似乎都没问题,但问题是我需要200个字符对于每一行。例如,当程序在一行中设置一个10个字符的字符串变量值时(该值在数字字符中不同),该行必须包含190个空格。这是我的代码示例:
if (File.Exists(DLFile))
{
using (StreamWriter sw = new StreamWriter(DLFile))
{
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.Append("001" + partNumber + " ").AppendLine();
String innerString = stringBuilder.ToString();
sw.WriteLine(innerString);
sw.Close();
}
}
有一个名为“partNumber”的字符串variable
长度不一。有时长度可以是15或14或10,但是该长度和空白的总和可以是200(精确数量)。任何人都可以帮我这个吗?
答案 0 :(得分:9)
只需使用PadRight
(或PadLeft
,如果合适的话)就可以正确使用它。
sw.WriteLine(("001" + partNumber).PadRight(200));
答案 1 :(得分:2)
不确定。只需查看String.format方法,并指定实现此目的的格式。
在你的情况下,它意味着做类似的事情:
string line = String.Format("{0,-200}", input);
答案 2 :(得分:0)
如何简单地计算然后using this overload?:
...
var h = "001" + partNumber;
stringBuilder.Append( h );
stringBuilder.Append( ' ', 200 - h.Length );
...
使它(有点)更加防错:
...
var h = "001" + partNumber;
stringBuilder.Append( h );
var a = 200 - h.Length;
if ( a > 0 )
{
stringBuilder.Append( ' ', a );
}
...
答案 3 :(得分:0)
您可以使用this string constructor重复空格:
int whiteSpacesLength = 200 - partNumber.Length; // assuming partNumber is never > 200
string whiteSpaces = new String(' ', whiteSpacesLength);
string innerString = partNumber + whiteSpaces;
(所以我认为没有理由在这里使用StringBuilder
)
答案 4 :(得分:0)
使用带有200个空格的已定义字符串,然后执行下面的子字符串
string space200 = " ";
if (File.Exists(DLFile))
{
using (StreamWriter sw = new StreamWriter(DLFile))
{
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.Append("001").Append(partNumber).Append(space200.Substring(stringBuilder.ToString().Length, space200.Length - stringBuilder.ToString().Length)).AppendLine();
String innerString = stringBuilder.ToString();
sw.WriteLine(innerString);
sw.Close();
}
}