wie erzeugt man eine leere zeile zwischen jedem char in einem string (c#)?
Was ist denn in dem Zusammenhang eine "Leerzeile"?
Ein Zeilenumbruch? Ein Wagenrücklauf? Eine bestimmte Anzahl Leerzeichen? ....
wenn ich zb HALLO in einem string speichere möchte ich dass es dann so aussieht H A L L O
3 Antworten
string oldText = "Hallo";
string newText = String.Empty;
foreach(char c in oldText)
{
newText += c + Enviroment.NewLine;
}
Console.WriteLine(newText);
Ergebnis:
H
a
l
l
o
Habe es nicht live getestet, sollte aber hinkommen
Dabei durchlaufen wir jeden Char vom string mit Hilfe der for-Schleife. Dann fügen wir jeden Char + eine neue Zeile hinten dran. Eine neue Zeile kann man \n machen, ich empfehle aber die Enviroment Variable zu benutzen, denn diese nimmt dann je nach system das passende Zeichen. Windows hat \r\n zum Beispiel, Linux, soweit ich weiß, hat nur \n oder so. Die sind zwar untereinander kompatibel, aber ich kann es so empfehlen. Am besten direkt richtig machen
Stimmt. Aber dann einfach gleich AppendLine, dann braucht man keine + Enviroment.NewLine mehr
ja, es funktioniert, nur muss man newText vorher z.b. auf null setzen, bevor man es verwenden kann: https://dotnetfiddle.net/DMJnCi
Stimmt, aber dann würde ich das zur String Klasse gehörende String.Empty bevorzugen
Zerlege den String in einzelne Buchstaben (ToCharArray) und füge ihn danach wieder zusammen (Join).
var word = "Hallo";
word = string.Join(" ", word.ToCharArray());
Das erste Argument von Join bestimmt das Trennzeichen. Hier ist es ein Leerzeichen, womit du zu dem Ergebnis kommen würdest, welches du in deiner Antwort zur gestellten Nachfrage beschrieben hast. Geht man nach deinem Fragetitel, sollte der Wert von Enviroment.NewLine eingesetzt werden.
Du fügst nach jedem Zeichen ein newline \n ein
Für Fortgeschrittene: Wenn der Eingabestring etwas länger werden kann, würde ich aus Effizienzgründen einen StringBuilder verwenden, anstatt die ganze Zeit zu konkatenieren:
Hierfür wird System.Text benötigt.