C# -String beidseitig mit Leerzeichen füllen?
ich habe einen String, der die Länge X haben soll, wenn ich ihn in der Konsole ausgebe. Falls der String kürzer als X ist, soll er beidseitig mit Leerzeichen aufgefüllt werden.
//
string s = "***";
Console.WriteLine("{0,10}",s);
Hier wird der String s links so mit Leerzeichen aufgefüllt, dass die Länge 10 beträgt, wenn der String s eine kleinere Länge hat. Auch nur rechts auffüllen ist mir bekannt ( "{0,-10}").
Jedoch, wie kann ich einen String "irgendwie" beidseitig auffüllen, beispielsweise so auffüllen, dass die Leerzeichen gleichmäßig links und rechts aufgefüllt werden ?
//Beispiel
string s = "*";
// Es soll " * " auf der Console ausgegeben werden.
Gibt es irgendwelche Möglichkeiten, Leerzeichen nicht links oder rechts aufzufüllen, sondern irgendwie auf beiden Seiten ?
Ich möchte keine Funktion selber schreiben, das könnte ich, sondern bereits vorhandene Mittel benutzen.
2 Antworten
Und wieso schaust du dann dafür nicht einfach in die Dokumentation?
- https://msdn.microsoft.com/de-de/library/system.string.insert(v=vs.110).aspx
- https://msdn.microsoft.com/de-de/library/0zk6ydzx(v=vs.110).aspx
- https://msdn.microsoft.com/de-de/library/34d75d7s(v=vs.110).aspx
Eine gleichverteilte Auffüllung erreichst du nur bei einer geraden Wortlänge. Daher gäbe es für mich folgende Lösungen:
- Den String mittels Schleife abwechselnd auffüllen (ohne eine der oberen Funktionen, denn wahrscheinlich zu viel Aufwand)
- Fehlende Anzahl an Zeichen durch 2 teilen, bei Nachkommastelle left = (int) ergebnis + 1, right = (int) ergebnis
Danke, PadRight und PadLeft scheint das zu sein. Ist halt schwer, danach zu suchen, wenn man nicht weiß, mit welchen Begriffen.
Wenn du es doch selbst schreiben kannst, dann tue es doch...
Danke, aber ich frage mich, ob es auch mit Vorhandenem geht. Ist ja unnötig, eine eigenen Funktion zu schreiben, wenn das schon irgendwie geht.
Falls die Frage zu ungenau oder unklar ist, reduziert möchte ich wissen, ob ich einen String beidseitg auffüllen kann, in einem Schritt, ohne selbst Funktionen schreiben zu müssen.
Sowas wie