2017-04-19 1 views
-2

Ich möchte viele Zeilen drucken. Jede Zeile ist eine Zeichenfolge plus Leerzeichen plus eine zweite Zeichenfolge.PadRight wenn in Betracht ziehen crlf funktioniert nicht gut

Ich möchte die zweite Teilzeichenfolge in jeder Zeile ausrichten. Also benutze ich PadRight; aber es funktioniert nicht gut.

Code:

void Main() 
{ 
    var str ="Hellooooo".PadRight(50)+"Test"; 
    str += (Environment.NewLine+"World").PadRight(50)+"Test"; 
    str+= (Environment.NewLine+"Hello Worldoooooooo").PadRight(50)+"Test"; 
    Console.WriteLine(str); 
} 

Der Ausgang mag 1

Sie können die drei "Test" sehen ausrichten nicht vertikal.

+0

seine in der Regel besser, eine weitere Tabelle freundlicher Steuerung zu verwenden. Muss es wirklich mit Whitespaces ausgerichtet werden? Wenn es nicht die Ausgabe der Konsole ist. Der Screenshot sieht anders aus. – CSharpie

Antwort

0

Wenn Sie Text Leerräume ausrichten möchten, dann benötigen Sie eine mono space font (jedes char gleiche Breite), wie Kurier neu.

Auch Environment.NewLine ist in der zweiten und dritten Zeichenfolge, aber nicht die erste.

Wenn die Environment.NewLine Fixierung und eine nichtproportionale Schrift verwenden, das funktioniert:

public static void Main() 
{ 
    var str ="Hellooooo".PadRight(50)+"Test"; 
    str += Environment.NewLine + ("World").PadRight(50)+"Test"; 
    str += Environment.NewLine + ("Hello Worldoooooooo").PadRight(50)+"Test"; 
    Console.WriteLine(str); 
} 

result

live demo Siehe

+0

Nein, ich habe alle Buchstaben als 'o' geändert. Gleiches Ergebnis. Ich teste es mit LinqPad. – Bigeyes

+0

ja wie der Raum hat nicht die gleiche Breite ein 'o'? – Julian

+0

Wie kann ich sie ausrichten? Die Zeichenfolge wird zur Laufzeit generiert. – Bigeyes

Verwandte Themen