wie erzeugt man eine leere zeile zwischen jedem char in einem string (c#)?

gfntom  28.10.2021, 22:00

Was ist denn in dem Zusammenhang eine "Leerzeile"?

Ein Zeilenumbruch? Ein Wagenrücklauf? Eine bestimmte Anzahl Leerzeichen? ....

POSEIDON196 
Fragesteller
 28.10.2021, 22:00

wenn ich zb HALLO in einem string speichere möchte ich dass es dann so aussieht H A L L O

3 Antworten

Von Experte whgoffline bestätigt
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


MagicalGrill  29.10.2021, 10:40

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:

string oldText = "Hallo";
StringBuilder sb = new StringBuilder(string.Empty);
foreach(char c in oldText)
{
  sb.Append(c + Environment.NewLine);
}

Console.WriteLine(sb);

Hierfür wird System.Text benötigt.

0
FaTech  29.10.2021, 10:41
@MagicalGrill

Stimmt. Aber dann einfach gleich AppendLine, dann braucht man keine + Enviroment.NewLine mehr

1

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

Woher ich das weiß:Studium / Ausbildung – Informatikstudent