Hallo zusammen
ich habe folgendes Problem:
ich möchte aus einer Zeichenkette einen Wert an Position xy löschen.
Beispiel:
String Zeichenkette ="ABCDEFG";
int Position = Convert.ToInt32(Console.ReadLine());
Wenn der Benutzer nun die Zahl 2 eingibt, dann soll "B" gelöscht werden.
Zeichenkette ="ACDEFG";
Ich habe schon "String.Remove()" probiert, aber dort wird nach String-Werten gesucht und nicht nach der Position des String-Wertes.
Habe gedacht dass das ganze wie bei einem INSERT-Befehl aussehen müsste:
Zeichenkette.Insert(1, "");
nur eben mit einem Remove oder Replace befehl.
Danke für eure Hilfe!
mfg
Hallo,
willkommen bei myCSharp.de
Guck mal hier: Trimming and Removing Characters
Die String-Klasse hat eine Remove Methode welche in diesem Fall für dich geeignet sein sollte.
Diese löscht eine bestimmte Anzahl von Zeichen im String raus.
Dazu musst du die Position angeben wo gelöscht werden soll und die Anzahl.
Also in deinem Fall 2 und 1 (weil nur ein Item gelöscht werden soll)
Gruß
Michael
Hallo Evolut1on,
verwende nicht die Convert.ToInt32-Methode, sondern int.Parse od. int.TryParse. Das ist sicherer gegen Falscheingaben.
Hallo Michael,
Also in deinem Fall 2 und 1 (weil nur ein Item gelöscht werden soll)
1 und 1 wäre es, da der Index nullbasiert ist 😉
mfG Gü
Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.
"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"
Danke für die Info!
1 und 1 wäre es, da der Index nullbasiert ist 😉
stimmt... habs mit der variablen "Zahl"-1 gelöst.
string Zeichenkette = ("ABCDEFGHIJKLMNOPQRSTUVWXYZ");
int zahl = int.Parse(Console.ReadLine());
Zeichenkette = Zeichenkette.Remove(zahl-1, 1);
Console.WriteLine(Zeichenkette);
Console.ReadKey();
Die Remove-Methode hattest du ja selbst gefunden. Ich weiß nicht, wie du darauf gekommen bist, dass sie nicht das richtige ist. Im Grunde hat dieser Thread nur aufgezeigt, dass String Remove eben doch richtig ist. Insofern also doch ein Fall für [Hinweis] Wie poste ich richtig? Punkt 1.1.1.
int.Parse ist genausowenig sicher gegen Fehleingaben wie Convert.ToInt32. Beide werfen bei Fehleingaben eine Exception. Nur int.TryParse tut das nicht, sondern liefert per Rückgabewert, ob das Eingabeformat ok ist oder nicht.