[英]StringBuilder number of characters written per line
您好,我已經創建了一些C#
代碼,並使用StringBuilder
object
將其寫入.txt文件,一切似乎都不錯,但是問題是我每行恰好需要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(精確數量)。 誰能幫我這個?
只要使用PadRight
(或者PadLeft
如果合適的話),因為它是專門用來做正是這一點。
sw.WriteLine(("001" + partNumber).PadRight(200));
當然。 只需看一下String.format方法,並指定格式即可實現此目的。
在您的情況下,這意味着您需要執行以下操作:
string line = String.Format("{0,-200}", input);
簡單計算然后使用此重載怎么樣?:
...
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 );
}
...
使用具有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();
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.