Ich habe eine Zeichenfolge, nennen wir sie MyStr
. Ich versuche, jedes nicht-alphabetische Zeichen in der Zeichenfolge loszuwerden. In IMs wie MSN und Skype setzen die Leute ihre Anzeigenamen wie [- Bobby -] . Ich möchte alles in dieser Zeichenfolge entfernen, die kein alphabetisches Zeichen ist, also bleibt mir nur der "Name".
Wie kann ich das in Delphi machen? Ich habe darüber nachgedacht, ein TStringlist
zu erstellen und jedes gültige Zeichen dort zu speichern und dann IndexOf
zu verwenden, um zu prüfen, ob das Zeichen gültig ist, aber ich habe auf einen einfacheren Weg gehofft.
Der einfachste Ansatz ist
%Vor%aber dies wird englische Buchstaben nur als "alphabetische Zeichen" betrachten. Es wird nicht einmal die extrem wichtigen schwedischen Buchstaben Å, Ä und Ö als "alphabetische Zeichen" betrachten!
Etwas ausgefeilter ist
%Vor%Probieren Sie diesen Code, um zu prüfen, ob ein Zeichen ein alphabetisches Zeichen ist.
%Vor%Um alle nicht alphabetischen Zeichen (englische Zeichen) aus einer Zeichenkette zu entfernen, können Sie so etwas verwenden.
%Vor% Jetzt enthält die Variable NewStr
nur alphabetische Zeichen.
In neueren Versionen von Delphi können Sie die Funktion Character.IsLetter
verwenden.