2017-03-08 27 views
-2

我必須從文本文件中取出字符串並將它們保存到列表中。對於每一行我都應該寫下完全按照彼此排序的列寫成的結果。c#使用控制檯將字符串拆分爲列

我必須在控制檯中寫下文本文件中給出的每一行。

我有一個字符串打造出多個字符串像這樣什麼表示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

+0

[格式化固定空格的字符串]的可能重複(http://stackoverflow.com/questions/644017/)。 –

+0

如果你在彼此之下沒有看到它們,請嘗試在PC上移動collum部分。 –

+0

使用xxx.ToString()。PadRight(10) – Graffito

回答

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

我試過使用但是這是結果: –

+0

結果是什麼? –

+0

18-11-2014 06:48:00(LWD)Leeuwarden Int(RAK)MarrakechOnderweg KL4124KLMBoeing 737-800(willets)乘客 18-11-2014 06:48:00(LWD)Leeuwarden Int(RAK)MarrakechOnderweg KL4124KLMBoeing 737乘客 18-11-2014 06:45:00(LWC)呂伐登市(ACE)LanzaroteOnderweg TV2322 (BRU)布魯塞爾基因KL3231KLMFokker 70 18-11-2014 06:45:00(LWS)呂伐登市(BRU)布魯塞爾基因KL3231KLMFokker 70 18-11-2014 06:45:00(LWS)呂伐登市(BRU)布魯塞爾基因KL3231KLMFokker 7 –

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爲例)設置爲最大列寬。