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

c# Splitting a string into columns using console

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

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

我有一个由多个字符串组成的字符串,代表 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

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

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, ' '));

改变这个:

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 为例)设置为最大列宽。