Laden...

Selbe Zeichen löschen?

Erstellt von yourmama vor 14 Jahren Letzter Beitrag vor 14 Jahren 1.088 Views
Y
yourmama Themenstarter:in
25 Beiträge seit 2009
vor 14 Jahren
Selbe Zeichen löschen?

Hallo,

Mein Input String hat die Form:

aaaaalllllssssooooo ddddiiiieeeessss iiiisssstttt eeeeiiiinnnn tttteeeesssstttt

Wie bringe ich das am Einfachsten zu:

also dies ist ein test

Sprich also alle wiederholenden zeichen nach dem a, die auch ein a, sind zu löschen. Wobei a natürlich für die Variable X steht.

2.223 Beiträge seit 2005
vor 14 Jahren

Hallo yourmama,

ein schnell implementierter, aber nicht schöner Weg wäre, alle doppelt vorhandenen buchstaben durch ein ein einzelnen buchstaben zu ersetzten.

schleife über alle im string vorhandenen Buchstaben
schleife über IndexOf verdoppelter Buchstabe > 0
string Replace mit dem aktuell verdoppelten Buchstaben durch seinen einzelnen Buchstaben ersetzten
Beispiel:
aktueller Buchstabe ist ein 'a' dann string.Replace("aa", "a").
Das wäre die Verrückte Idee.

ein weitere könnte aufwendig mit Regex realisiert werden.

und noch etwa 100 andere

HErzliche Grüße
Lars

373 Beiträge seit 2006
vor 14 Jahren

Hallo,

naja, das ist ja einfach. Den String Zeichen für Zeichen mit einer for-Schleife durchgehen und immer das letzte Zeichen speicerhn. Immer wenn ein neues Zeichen kommt als das letzte oder der String zuende ist, wird das Zeichen in einen neuen String geschrieben.


// überprüfunggen muss du selbst einfügen. Code nicht getestet
char LastChar = inputtext[0];
String NewText = "";
for(int i=1;i<inputtext.length;i++)
{
    if(inputtext[i] != LastChar)
    {
           NewText += LastChar;
     }
     LastChar = inputtext[i];
}
NewText += LastChar;

MfG
Tonka

49.485 Beiträge seit 2005
vor 14 Jahren

Hallo zusammen,

alles viel zu aufwändig. Das geht mit einer Zeile:

str = Regex.Replace (str, @"(.)\1+", "$1");

herbivore

PS: Ich glaube ich werde nie verstehen, warum solche Fragen immer wieder in in "GUI: Windows-Forms" gestellt werden. Das hat mit GUI überhaupt nichts zu tun. Es geht rein um String-Verarbeitung ==> verschoben.