我正在将一个大字符串(大约 100 行)写入一个文本文件,并希望将整个文本块设置为标签。
WriteToOutput("\t" + strErrorOutput);
我在上面使用的行仅在文本的第一行制表符。如何缩进/制表符整个字符串?
File.WriteAllLines(FILEPATH,input.Split(new string[] {"\n","\r"}, StringSplitOptions.None)
.Select(x=>"\t"+x));
为此,您必须有一个有限的行长(即<100 个字符),此时此问题变得容易。
public string ConvertToBlock(string text, int lineLength)
{
string output = "\t";
int currentLineLength = 0;
for (int index = 0; index < text.Length; index++)
{
if (currentLineLength < lineLength)
{
output += text[index];
currentLineLength++;
}
else
{
if (index != text.Length - 1)
{
if (text[index + 1] != ' ')
{
int reverse = 0;
while (text[index - reverse] != ' ')
{
output.Remove(index - reverse - 1, 1);
reverse++;
}
index -= reverse;
output += "\n\t";
currentLineLength = 0;
}
}
}
}
return output;
}
这会将任何文本转换为一个文本块,该文本块被分成几行长度lineLength
,并且都以制表符开头并以换行符结尾。
用换行符替换所有换行符,后跟一个制表符:
WriteToOutput("\t" + strErrorOutput.Replace("\n", "\n\t"));
您可以复制您的字符串以将 CRLF 替换为 CRLF + TAB 的输出。并将该字符串写入输出(仍以初始 TAB 为前缀)。
strErrorOutput = strErrorOutput.Replace("\r\n", "\r\n\t");
WriteToOutput("\t" + strErrorOutput);