Überprüfen Sie, ob MyString [1] ein alphabetisches Zeichen ist?

7

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.

    
Jeff 02.03.2011, 18:32
quelle

4 Antworten

15

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%     
Andreas Rejbrand 02.03.2011, 18:37
quelle
5

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.

    
RRUZ 02.03.2011 18:37
quelle
2

Ich habe eine ganze Reihe von optimierten String-Routinen, die mit Unicode und nicht-Unicode Delphi arbeiten. Die zwei relevantesten sind:

%Vor%

Sie können sie hier herunterladen.

    
Misha 02.03.2011 21:16
quelle
-1

Perfekte Lösung:

%Vor%

Funktioniert in Delphi XE

Ссылка

    
MajidTaheri 03.03.2011 07:24
quelle

Tags und Links