Löschen v. Char

Cherry07

Mitglied
Hallo,

habe da mal eine kleine Frage:
Wie kann ich ein einzelnes Zeichen in einem Array löschen?
Beispiel:
ursprüngliches Array: "Hallo - Welt"
nach dem Löschen soll dann nur noch "Hallo Welt" ohne Bindestrich da stehen.

Ich hatte da mal eine Idee es mit delete zu versuchen, aber da bräuchte man ja noch ein Konstruktur wahrscheinlich oder?

Geht es eigentlich auch ohne Konstruktur und ohne delete denn Bindestrich zu löschen?

Vielen Dank im Voraus.
Gruß
 

mattit-jah

Mitglied
Ich hatte da mal eine Idee es mit delete zu versuchen, aber da bräuchte man ja noch ein Konstruktur wahrscheinlich oder?

Erläuter mal die Idee. Wie meinst du das mit Delete? Was für ein Array, meinst du ArrayList? Und warum sollte man dafür einen Konstruktor brauchen?

Du kannst es entweder in einer Methode oder in der Main direkt machen. Therotisch, wenn du z.B. eine ArrayList nutz, kannst du einfach bis zum gewünschten Zeichen oder Stelle fahren und dann löschen.
 

Laocoon

Erfahrenes Mitglied
Hallo,

ich gehe mal davon aus, dass du wirklich die Datenstruktur Array meinst?!
Das Problem beim Löschen von Elementen aus einem Array ist, dass ein Array eine statische Struktur ist. D.h. du allokierst beim Anlegen des Arrays den ganzen benötigten Speicher.
Wenn du dann ein Element daraus löschen willst hast du mehrere Möglichkeiten:
  1. Element überschreiben (z.b. mit null oder " ") und die Lücke Akzeptieren
  2. Alle Elemente hinter dem zu löschenden Element nach links aufrücken und Freie Elemente am Ende des Array akzeptieren.
  3. Neues Array mit der richtigen Größe (n -1) allokieren, und alle nicht zu löschenden Elemente in das neue Array kopieren
Sollte es öfter vorkommen, dass du aus einer Listenstruktur Löschen musst würde ich mir Gedanken darüber machen eine andere Datenstruktur zu nutzen (Irgendwas was von LinkedList erbt z.B).

Grüße
Daniel