[英]Moving a whole line string to the right
const string Duom = "Text.txt";
char[] seperators = { ' ', '.', ',', '!', '?', ':', ';', '(', ')', '\t' };
string[] lines = File.ReadAllLines(Duom, Encoding.GetEncoding(1257));
for (int i = 0; i < lines.Length; i++)
{
string GLine = " " + lines[i];
GLine = Regex.Replace(GLine, @"\s+", " ");
GLine = GLine.PadRight(5, ' ');
Console.WriteLine(GLine);
}
读取一个文本文件,为每行在开头添加一个空格,删除所有双精度和以上的空格,我想将该行向右移动,但是它什么也没做。
PadLeft
和PadRight
如果指定的长度已经达到了不字符添加到您的字符串的开始/结束。
从String.PadRight的文档 (重点是我的):
返回一个新字符串,该字符串通过在指定字符串的右侧填充指定的Unicode字符( 指定的总长度)使该字符串中的字符左对齐。
您的所有字符串都大于5
(指定的总长度) ,因此PadRight / PadLeft将不执行任何操作。
“填充”字符串将添加空格(或其他字符),以便新字符串至少与所需数字一样大。
相反,只需在字符串之前手动添加5个空格。
GLine = " " + GLine;
或更编程地:
GLine = new string(' ', 5) + GLine;
您可以这样替换循环的主体:
string GLine = new string(' ', 1 + i * 5) + Regex.Replace(lines[i], @"\s+", " ");
Console.WriteLine(GLine);
这将为每行增加1个空格,然后再增加5个空格。
for (int i = 0; i < lines.Count(); i++)
{
string GLine = new string(' ',5*i) + lines[i];
Console.WriteLine(GLine);
}
这应该为您的每一行增加5个额外的空格,我相信,如果我理解正确的话,这就是您要完成的工作。
您需要根据您的文本行数左移一个制表符。 最好使用的增量是i变量。
string GLine = " " + lines[i];
更改为
string GLine = new String('\\t', i) + lines[i];
顺便说一句,PadLeft应该可以工作,但是请记住,您需要执行一次
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.