c#使用控制台将字符串拆分为列

时间:2017-03-08 16:55:27

标签: c# split console-application console.writeline

我必须从文本文件中获取字符串并将其保存到列表中。对于每一行,我应该写下完全按照彼此排列的列中写的结果。

我必须在控制台中写下文本文件中给出的每一行。

我有一个字符串构建的多个字符串,如此代表1行:

string uitslag = vertrek.ToString() +  van.ToString()  + naar.ToString() + status.ToString() + vliegtuig.ToString();`

我的问题是:如何对输出进行排序:

aaaaaa    aaaaaa     aa       aaaaa       aaaaa
aaaa      aaa        aaaa     aa          aa
a         a          a        a           a
aaaaaaa   a          aaaa     aa          aaaaaaaa`

注意:我已尝试使用\t,但有些行不会与其他行同步。

编辑:

`String.Format("{0}{1}{2}{3}{4}",
      vertrek.ToString().PadRight(12, ' '),
      van.ToString().PadRight(12, ' '),
      naar.ToString().PadRight(12, ' '),
      status.ToString().PadRight(12, ' '),
      vliegtuig.ToString().PadRight(12, ' '));`

给出了以下结果:

result

2 个答案:

答案 0 :(得分:3)

您可以使用最大长度为String.PadRight作为每个字符串右侧的空格填充:

String.PadRight(50, ' ');

在你的情况下:

string uitslag = String.Format("{0}{1}{2}{3}{4}",    
         vertrek.ToString().PadRight(50, ' '),  
         van.ToString().PadRight(50, ' '),  
         naar.ToString().PadRight(50, ' '), 
         status.ToString().PadRight(50, ' '),                  
         vliegtuig.ToString().PadRight(50, ' '));

答案 1 :(得分:1)

改变这个:

string uitslag = vertrek.ToString() +  van.ToString()  + naar.ToString() + status.ToString() + vliegtuig.ToString();

这样的事情:

string uitslag = String.Format ("{0,-10}{1,-10}{2,-10}{3,-10}{4,-10}", vertrek.ToString(),  van.ToString(), naar.ToString(), status.ToString(), vliegtuig.ToString());

大括号中的第一个数字表示列号,第二个数字表示该行中的最大字符数(左对齐为负值,右对齐为正值)。因此,您需要将该值(我使用10作为示例)设置为您的最大列宽应该是什么。