2

StringSwift で、a の最初の文字が ASCII かアクセント付きの文字かを確認するにはどうすればよいですか? 顔文字やロゴグラムなどの幅広の文字はカウントされません

グループ チャットで、iPhone メッセージ アプリがメッセージの横に人のイニシャルを表示する方法をコピーしようとしています。ただし、顔文字や漢字などのイニシャルは含まれません。

decomposableCharacterSet&が表示されますが、それらが必要かどうかはわかりnonBaseCharacterSetません。

4

1 に答える 1

3

アクセントのあるUnicode文字がたくさんあります。これはあなたにとってアクセントのあるキャラクターですか?

Ê Ð Ï Ḝ Ṹ é⃝</p>


Unicode には、2 つの Unicode 文字を 1 つにまとめた結合文字があります。

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

Swift の場合Characterも同じです。

良い参考書はこちらです。


String 内の文字の CodeUnit を知りたい場合は、utf8またはutf16プロパティを使用できます。それらは違う!

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 é

次に、ASCII アルファベットの AZ が 65 ~ 90 で、az が 97 ~ 122 であることを確認できます。そして、標準のアクセント グレイブとアキュート À 192 Á 193 È 200 É 201 à 224 á 225 è 232 é 233 ... と組み合わせたもの、および好きなものすべてを確認します。

しかし、アクセント付きのラテン文字のように見える記号がありますが、同じ意味ではありません!

これらの文字のみが受け入れられ、正しい言語的意味が必要であることを確認する必要があります。

于 2014-08-08T13:02:23.767 に答える