/ / Swift: Überprüfen Sie, ob das erste Zeichen von String ASCII oder ein Buchstabe mit einem Akzent ist - swift, ascii, diakritics, nscharacterset

Swift: Überprüfen Sie, ob das erste Zeichen von String ASCII oder ein Buchstabe mit einem Akzent ist - swift, ascii, diakritics, nscharacterset

Wie überprüfe ich in Swift, ob das erste Zeichen von a String ist ASCII oder ein Buchstabe mit einem Akzent? Breiter Zeichen, wie Emoticons & Logogramme, zählen nicht.

Ich versuche zu kopieren, wie die iPhone Messages Appzeigt die Initialen einer Person neben ihrer Nachricht in einem Gruppenchat. Sie enthält jedoch keine Initiale, wenn es sich beispielsweise um ein Emoticon oder ein chinesisches Zeichen handelt.

Aha decomposableCharacterSet & nonBaseCharacterSetAber ich bin mir nicht sicher, ob das das ist, was ich will.

Antworten:

2 für die Antwort № 1

Es gibt viele Unicode-Zeichen mit einem Akzent. Ist das für dich ein Charakter mit einem Akzent?

Ê Ð ICH Ḝ Ṹ é


In Unicode gibt es kombinierte Zeichen, die aus zwei Unicode-Zeichen bestehen:

let eAcute: Character = "u{E9}"                         // é
let combinedEAcute: Character = "u{65}u{301}"          // e followed by ́
// eAcute is é, combinedEAcute is é

Für Swift die Character ist dasselbe!

Gute Referenz ist Hier.


Wenn Sie die CodeUnit der Zeichen in der Zeichenfolge kennen möchten, können Sie die utf8 oder utf16 Eigentum. Sie sind anders!

let characterString: String = "abc"
for character in characterString.utf8 {
print("(character) ")
}
// output are decimal numbers: 97 98 99
// output of only é: 195 169, used the combined é

Dann könnten Sie nach ASCII-Alphabet A-Z suchen65-90 und a-z als 97-122. Und dann nach dem Standard Akzent gravierend und akut suchen À 192 Á 193 È 200 É 201 à 224 225 è 232 é 233 ... und die kombinierten und alles, was du magst.

Aber es gibt Symbole, die wie ein lateinischer Buchstabe mit Akzent aussehen, aber nicht dieselbe Bedeutung haben!

Sie sollten sicherstellen, dass nur diese Zeichen akzeptiert werden, die Sie mit der richtigen linguistischen Bedeutung haben möchten.