Laden...

Aus Zeichenkette einen Teil-Wert löschen

Erstellt von Evolut1on vor 12 Jahren Letzter Beitrag vor 12 Jahren 620 Views
Thema geschlossen
E
Evolut1on Themenstarter:in
3 Beiträge seit 2011
vor 12 Jahren
Aus Zeichenkette einen Teil-Wert löschen

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

3.430 Beiträge seit 2007
vor 12 Jahren

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

E
Evolut1on Themenstarter:in
3 Beiträge seit 2011
vor 12 Jahren

Super!
Genau danach habe ich gesucht!

Vielen Dank!

6.911 Beiträge seit 2009
vor 12 Jahren

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!"

E
Evolut1on Themenstarter:in
3 Beiträge seit 2011
vor 12 Jahren

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();


Hinweis von herbivore vor 12 Jahren

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.

Thema geschlossen