Members of CharacterSet

Hello everyone!!! How can I know a set of characters in a particular CharacterSet?
logically speaking, CharacterSet.decimalDigits is supposed to contain characters in a range form 0 to 9. But how can I print them out?

See the section “Iterating over a set” here:

https://docs.swift.org/swift-book/LanguageGuide/CollectionTypes.html

1 Like

CharacterSet is not a Collection. You can test for membership, but seeing all of the characters in a character set is not possible. For more information, see this link

1 Like

Appreciate it.

Actually, that post was about what Swift calls a Character and Unicode calls an “extended grapheme cluster”.

Because it was inherited from Objective C, CharacterSet has an unfortunate name. The elements of CharacterSet are what Swift normally calls a Unicode.Scalar (and which Unicode refers to the same way).

So the second paragraph of that post applies here and you can iterate the contents of a CharacterSet (very inefficiently) like this:

extension CharacterSet {

  func asArray() -> [Unicode.Scalar] {
    var array = [Unicode.Scalar]()
    for codePoint in (0 as UInt32) ... 0x10FFFF {
      if let scalar = Unicode.Scalar(codePoint),
         self.contains(scalar) {
        array.append(scalar)
      }
    }
    return array
  }
}
2 Likes

So for your particular question about decimalDigits:

let decimals = CharacterSet.decimalDigits.asArray()
print("Count: \(decimals.count)")
for scalar in decimals {
  print("\(scalar) (U+\(String(scalar.value, radix: 16, uppercase: true)))")
}
Count: 650
0 (U+30)
1 (U+31)
2 (U+32)
3 (U+33)
4 (U+34)
5 (U+35)
6 (U+36)
7 (U+37)
8 (U+38)
9 (U+39)
٠ (U+660)
١ (U+661)
٢ (U+662)
٣ (U+663)
٤ (U+664)
٥ (U+665)
٦ (U+666)
٧ (U+667)
٨ (U+668)
٩ (U+669)
۰ (U+6F0)
۱ (U+6F1)
۲ (U+6F2)
۳ (U+6F3)
۴ (U+6F4)
۵ (U+6F5)
۶ (U+6F6)
۷ (U+6F7)
۸ (U+6F8)
۹ (U+6F9)
߀ (U+7C0)
߁ (U+7C1)
߂ (U+7C2)
߃ (U+7C3)
߄ (U+7C4)
߅ (U+7C5)
߆ (U+7C6)
߇ (U+7C7)
߈ (U+7C8)
߉ (U+7C9)
० (U+966)
१ (U+967)
२ (U+968)
३ (U+969)
४ (U+96A)
५ (U+96B)
६ (U+96C)
७ (U+96D)
८ (U+96E)
९ (U+96F)
০ (U+9E6)
১ (U+9E7)
২ (U+9E8)
৩ (U+9E9)
৪ (U+9EA)
৫ (U+9EB)
৬ (U+9EC)
৭ (U+9ED)
৮ (U+9EE)
৯ (U+9EF)
੦ (U+A66)
੧ (U+A67)
੨ (U+A68)
੩ (U+A69)
੪ (U+A6A)
੫ (U+A6B)
੬ (U+A6C)
੭ (U+A6D)
੮ (U+A6E)
੯ (U+A6F)
૦ (U+AE6)
૧ (U+AE7)
૨ (U+AE8)
૩ (U+AE9)
૪ (U+AEA)
૫ (U+AEB)
૬ (U+AEC)
૭ (U+AED)
૮ (U+AEE)
૯ (U+AEF)
୦ (U+B66)
୧ (U+B67)
୨ (U+B68)
୩ (U+B69)
୪ (U+B6A)
୫ (U+B6B)
୬ (U+B6C)
୭ (U+B6D)
୮ (U+B6E)
୯ (U+B6F)
௦ (U+BE6)
௧ (U+BE7)
௨ (U+BE8)
௩ (U+BE9)
௪ (U+BEA)
௫ (U+BEB)
௬ (U+BEC)
௭ (U+BED)
௮ (U+BEE)
௯ (U+BEF)
౦ (U+C66)
౧ (U+C67)
౨ (U+C68)
౩ (U+C69)
౪ (U+C6A)
౫ (U+C6B)
౬ (U+C6C)
౭ (U+C6D)
౮ (U+C6E)
౯ (U+C6F)
೦ (U+CE6)
೧ (U+CE7)
೨ (U+CE8)
೩ (U+CE9)
೪ (U+CEA)
೫ (U+CEB)
೬ (U+CEC)
೭ (U+CED)
೮ (U+CEE)
೯ (U+CEF)
൦ (U+D66)
൧ (U+D67)
൨ (U+D68)
൩ (U+D69)
൪ (U+D6A)
൫ (U+D6B)
൬ (U+D6C)
൭ (U+D6D)
൮ (U+D6E)
൯ (U+D6F)
෦ (U+DE6)
෧ (U+DE7)
෨ (U+DE8)
෩ (U+DE9)
෪ (U+DEA)
෫ (U+DEB)
෬ (U+DEC)
෭ (U+DED)
෮ (U+DEE)
෯ (U+DEF)
๐ (U+E50)
๑ (U+E51)
๒ (U+E52)
๓ (U+E53)
๔ (U+E54)
๕ (U+E55)
๖ (U+E56)
๗ (U+E57)
๘ (U+E58)
๙ (U+E59)
໐ (U+ED0)
໑ (U+ED1)
໒ (U+ED2)
໓ (U+ED3)
໔ (U+ED4)
໕ (U+ED5)
໖ (U+ED6)
໗ (U+ED7)
໘ (U+ED8)
໙ (U+ED9)
༠ (U+F20)
༡ (U+F21)
༢ (U+F22)
༣ (U+F23)
༤ (U+F24)
༥ (U+F25)
༦ (U+F26)
༧ (U+F27)
༨ (U+F28)
༩ (U+F29)
၀ (U+1040)
၁ (U+1041)
၂ (U+1042)
၃ (U+1043)
၄ (U+1044)
၅ (U+1045)
၆ (U+1046)
၇ (U+1047)
၈ (U+1048)
၉ (U+1049)
႐ (U+1090)
႑ (U+1091)
႒ (U+1092)
႓ (U+1093)
႔ (U+1094)
႕ (U+1095)
႖ (U+1096)
႗ (U+1097)
႘ (U+1098)
႙ (U+1099)
០ (U+17E0)
១ (U+17E1)
២ (U+17E2)
៣ (U+17E3)
៤ (U+17E4)
៥ (U+17E5)
៦ (U+17E6)
៧ (U+17E7)
៨ (U+17E8)
៩ (U+17E9)
᠐ (U+1810)
᠑ (U+1811)
᠒ (U+1812)
᠓ (U+1813)
᠔ (U+1814)
᠕ (U+1815)
᠖ (U+1816)
᠗ (U+1817)
᠘ (U+1818)
᠙ (U+1819)
᥆ (U+1946)
᥇ (U+1947)
᥈ (U+1948)
᥉ (U+1949)
᥊ (U+194A)
᥋ (U+194B)
᥌ (U+194C)
᥍ (U+194D)
᥎ (U+194E)
᥏ (U+194F)
᧐ (U+19D0)
᧑ (U+19D1)
᧒ (U+19D2)
᧓ (U+19D3)
᧔ (U+19D4)
᧕ (U+19D5)
᧖ (U+19D6)
᧗ (U+19D7)
᧘ (U+19D8)
᧙ (U+19D9)
᪀ (U+1A80)
᪁ (U+1A81)
᪂ (U+1A82)
᪃ (U+1A83)
᪄ (U+1A84)
᪅ (U+1A85)
᪆ (U+1A86)
᪇ (U+1A87)
᪈ (U+1A88)
᪉ (U+1A89)
᪐ (U+1A90)
᪑ (U+1A91)
᪒ (U+1A92)
᪓ (U+1A93)
᪔ (U+1A94)
᪕ (U+1A95)
᪖ (U+1A96)
᪗ (U+1A97)
᪘ (U+1A98)
᪙ (U+1A99)
᭐ (U+1B50)
᭑ (U+1B51)
᭒ (U+1B52)
᭓ (U+1B53)
᭔ (U+1B54)
᭕ (U+1B55)
᭖ (U+1B56)
᭗ (U+1B57)
᭘ (U+1B58)
᭙ (U+1B59)
᮰ (U+1BB0)
᮱ (U+1BB1)
᮲ (U+1BB2)
᮳ (U+1BB3)
᮴ (U+1BB4)
᮵ (U+1BB5)
᮶ (U+1BB6)
᮷ (U+1BB7)
᮸ (U+1BB8)
᮹ (U+1BB9)
᱀ (U+1C40)
᱁ (U+1C41)
᱂ (U+1C42)
᱃ (U+1C43)
᱄ (U+1C44)
᱅ (U+1C45)
᱆ (U+1C46)
᱇ (U+1C47)
᱈ (U+1C48)
᱉ (U+1C49)
᱐ (U+1C50)
᱑ (U+1C51)
᱒ (U+1C52)
᱓ (U+1C53)
᱔ (U+1C54)
᱕ (U+1C55)
᱖ (U+1C56)
᱗ (U+1C57)
᱘ (U+1C58)
᱙ (U+1C59)
꘠ (U+A620)
꘡ (U+A621)
꘢ (U+A622)
꘣ (U+A623)
꘤ (U+A624)
꘥ (U+A625)
꘦ (U+A626)
꘧ (U+A627)
꘨ (U+A628)
꘩ (U+A629)
꣐ (U+A8D0)
꣑ (U+A8D1)
꣒ (U+A8D2)
꣓ (U+A8D3)
꣔ (U+A8D4)
꣕ (U+A8D5)
꣖ (U+A8D6)
꣗ (U+A8D7)
꣘ (U+A8D8)
꣙ (U+A8D9)
꤀ (U+A900)
꤁ (U+A901)
꤂ (U+A902)
꤃ (U+A903)
꤄ (U+A904)
꤅ (U+A905)
꤆ (U+A906)
꤇ (U+A907)
꤈ (U+A908)
꤉ (U+A909)
꧐ (U+A9D0)
꧑ (U+A9D1)
꧒ (U+A9D2)
꧓ (U+A9D3)
꧔ (U+A9D4)
꧕ (U+A9D5)
꧖ (U+A9D6)
꧗ (U+A9D7)
꧘ (U+A9D8)
꧙ (U+A9D9)
꧰ (U+A9F0)
꧱ (U+A9F1)
꧲ (U+A9F2)
꧳ (U+A9F3)
꧴ (U+A9F4)
꧵ (U+A9F5)
꧶ (U+A9F6)
꧷ (U+A9F7)
꧸ (U+A9F8)
꧹ (U+A9F9)
꩐ (U+AA50)
꩑ (U+AA51)
꩒ (U+AA52)
꩓ (U+AA53)
꩔ (U+AA54)
꩕ (U+AA55)
꩖ (U+AA56)
꩗ (U+AA57)
꩘ (U+AA58)
꩙ (U+AA59)
꯰ (U+ABF0)
꯱ (U+ABF1)
꯲ (U+ABF2)
꯳ (U+ABF3)
꯴ (U+ABF4)
꯵ (U+ABF5)
꯶ (U+ABF6)
꯷ (U+ABF7)
꯸ (U+ABF8)
꯹ (U+ABF9)
0 (U+FF10)
1 (U+FF11)
2 (U+FF12)
3 (U+FF13)
4 (U+FF14)
5 (U+FF15)
6 (U+FF16)
7 (U+FF17)
8 (U+FF18)
9 (U+FF19)
𐒠 (U+104A0)
𐒡 (U+104A1)
𐒢 (U+104A2)
𐒣 (U+104A3)
𐒤 (U+104A4)
𐒥 (U+104A5)
𐒦 (U+104A6)
𐒧 (U+104A7)
𐒨 (U+104A8)
𐒩 (U+104A9)
𐴰 (U+10D30)
𐴱 (U+10D31)
𐴲 (U+10D32)
𐴳 (U+10D33)
𐴴 (U+10D34)
𐴵 (U+10D35)
𐴶 (U+10D36)
𐴷 (U+10D37)
𐴸 (U+10D38)
𐴹 (U+10D39)
𑁦 (U+11066)
𑁧 (U+11067)
𑁨 (U+11068)
𑁩 (U+11069)
𑁪 (U+1106A)
𑁫 (U+1106B)
𑁬 (U+1106C)
𑁭 (U+1106D)
𑁮 (U+1106E)
𑁯 (U+1106F)
𑃰 (U+110F0)
𑃱 (U+110F1)
𑃲 (U+110F2)
𑃳 (U+110F3)
𑃴 (U+110F4)
𑃵 (U+110F5)
𑃶 (U+110F6)
𑃷 (U+110F7)
𑃸 (U+110F8)
𑃹 (U+110F9)
𑄶 (U+11136)
𑄷 (U+11137)
𑄸 (U+11138)
𑄹 (U+11139)
𑄺 (U+1113A)
𑄻 (U+1113B)
𑄼 (U+1113C)
𑄽 (U+1113D)
𑄾 (U+1113E)
𑄿 (U+1113F)
𑇐 (U+111D0)
𑇑 (U+111D1)
𑇒 (U+111D2)
𑇓 (U+111D3)
𑇔 (U+111D4)
𑇕 (U+111D5)
𑇖 (U+111D6)
𑇗 (U+111D7)
𑇘 (U+111D8)
𑇙 (U+111D9)
𑋰 (U+112F0)
𑋱 (U+112F1)
𑋲 (U+112F2)
𑋳 (U+112F3)
𑋴 (U+112F4)
𑋵 (U+112F5)
𑋶 (U+112F6)
𑋷 (U+112F7)
𑋸 (U+112F8)
𑋹 (U+112F9)
𑑐 (U+11450)
𑑑 (U+11451)
𑑒 (U+11452)
𑑓 (U+11453)
𑑔 (U+11454)
𑑕 (U+11455)
𑑖 (U+11456)
𑑗 (U+11457)
𑑘 (U+11458)
𑑙 (U+11459)
𑓐 (U+114D0)
𑓑 (U+114D1)
𑓒 (U+114D2)
𑓓 (U+114D3)
𑓔 (U+114D4)
𑓕 (U+114D5)
𑓖 (U+114D6)
𑓗 (U+114D7)
𑓘 (U+114D8)
𑓙 (U+114D9)
𑙐 (U+11650)
𑙑 (U+11651)
𑙒 (U+11652)
𑙓 (U+11653)
𑙔 (U+11654)
𑙕 (U+11655)
𑙖 (U+11656)
𑙗 (U+11657)
𑙘 (U+11658)
𑙙 (U+11659)
𑛀 (U+116C0)
𑛁 (U+116C1)
𑛂 (U+116C2)
𑛃 (U+116C3)
𑛄 (U+116C4)
𑛅 (U+116C5)
𑛆 (U+116C6)
𑛇 (U+116C7)
𑛈 (U+116C8)
𑛉 (U+116C9)
𑜰 (U+11730)
𑜱 (U+11731)
𑜲 (U+11732)
𑜳 (U+11733)
𑜴 (U+11734)
𑜵 (U+11735)
𑜶 (U+11736)
𑜷 (U+11737)
𑜸 (U+11738)
𑜹 (U+11739)
𑣠 (U+118E0)
𑣡 (U+118E1)
𑣢 (U+118E2)
𑣣 (U+118E3)
𑣤 (U+118E4)
𑣥 (U+118E5)
𑣦 (U+118E6)
𑣧 (U+118E7)
𑣨 (U+118E8)
𑣩 (U+118E9)
𑥐 (U+11950)
𑥑 (U+11951)
𑥒 (U+11952)
𑥓 (U+11953)
𑥔 (U+11954)
𑥕 (U+11955)
𑥖 (U+11956)
𑥗 (U+11957)
𑥘 (U+11958)
𑥙 (U+11959)
𑱐 (U+11C50)
𑱑 (U+11C51)
𑱒 (U+11C52)
𑱓 (U+11C53)
𑱔 (U+11C54)
𑱕 (U+11C55)
𑱖 (U+11C56)
𑱗 (U+11C57)
𑱘 (U+11C58)
𑱙 (U+11C59)
𑵐 (U+11D50)
𑵑 (U+11D51)
𑵒 (U+11D52)
𑵓 (U+11D53)
𑵔 (U+11D54)
𑵕 (U+11D55)
𑵖 (U+11D56)
𑵗 (U+11D57)
𑵘 (U+11D58)
𑵙 (U+11D59)
𑶠 (U+11DA0)
𑶡 (U+11DA1)
𑶢 (U+11DA2)
𑶣 (U+11DA3)
𑶤 (U+11DA4)
𑶥 (U+11DA5)
𑶦 (U+11DA6)
𑶧 (U+11DA7)
𑶨 (U+11DA8)
𑶩 (U+11DA9)
𖩠 (U+16A60)
𖩡 (U+16A61)
𖩢 (U+16A62)
𖩣 (U+16A63)
𖩤 (U+16A64)
𖩥 (U+16A65)
𖩦 (U+16A66)
𖩧 (U+16A67)
𖩨 (U+16A68)
𖩩 (U+16A69)
𖭐 (U+16B50)
𖭑 (U+16B51)
𖭒 (U+16B52)
𖭓 (U+16B53)
𖭔 (U+16B54)
𖭕 (U+16B55)
𖭖 (U+16B56)
𖭗 (U+16B57)
𖭘 (U+16B58)
𖭙 (U+16B59)
𝟎 (U+1D7CE)
𝟏 (U+1D7CF)
𝟐 (U+1D7D0)
𝟑 (U+1D7D1)
𝟒 (U+1D7D2)
𝟓 (U+1D7D3)
𝟔 (U+1D7D4)
𝟕 (U+1D7D5)
𝟖 (U+1D7D6)
𝟗 (U+1D7D7)
𝟘 (U+1D7D8)
𝟙 (U+1D7D9)
𝟚 (U+1D7DA)
𝟛 (U+1D7DB)
𝟜 (U+1D7DC)
𝟝 (U+1D7DD)
𝟞 (U+1D7DE)
𝟟 (U+1D7DF)
𝟠 (U+1D7E0)
𝟡 (U+1D7E1)
𝟢 (U+1D7E2)
𝟣 (U+1D7E3)
𝟤 (U+1D7E4)
𝟥 (U+1D7E5)
𝟦 (U+1D7E6)
𝟧 (U+1D7E7)
𝟨 (U+1D7E8)
𝟩 (U+1D7E9)
𝟪 (U+1D7EA)
𝟫 (U+1D7EB)
𝟬 (U+1D7EC)
𝟭 (U+1D7ED)
𝟮 (U+1D7EE)
𝟯 (U+1D7EF)
𝟰 (U+1D7F0)
𝟱 (U+1D7F1)
𝟲 (U+1D7F2)
𝟳 (U+1D7F3)
𝟴 (U+1D7F4)
𝟵 (U+1D7F5)
𝟶 (U+1D7F6)
𝟷 (U+1D7F7)
𝟸 (U+1D7F8)
𝟹 (U+1D7F9)
𝟺 (U+1D7FA)
𝟻 (U+1D7FB)
𝟼 (U+1D7FC)
𝟽 (U+1D7FD)
𝟾 (U+1D7FE)
𝟿 (U+1D7FF)
𞅀 (U+1E140)
𞅁 (U+1E141)
𞅂 (U+1E142)
𞅃 (U+1E143)
𞅄 (U+1E144)
𞅅 (U+1E145)
𞅆 (U+1E146)
𞅇 (U+1E147)
𞅈 (U+1E148)
𞅉 (U+1E149)
𞋰 (U+1E2F0)
𞋱 (U+1E2F1)
𞋲 (U+1E2F2)
𞋳 (U+1E2F3)
𞋴 (U+1E2F4)
𞋵 (U+1E2F5)
𞋶 (U+1E2F6)
𞋷 (U+1E2F7)
𞋸 (U+1E2F8)
𞋹 (U+1E2F9)
𞥐 (U+1E950)
𞥑 (U+1E951)
𞥒 (U+1E952)
𞥓 (U+1E953)
𞥔 (U+1E954)
𞥕 (U+1E955)
𞥖 (U+1E956)
𞥗 (U+1E957)
𞥘 (U+1E958)
𞥙 (U+1E959)
🯰 (U+1FBF0)
🯱 (U+1FBF1)
🯲 (U+1FBF2)
🯳 (U+1FBF3)
🯴 (U+1FBF4)
🯵 (U+1FBF5)
🯶 (U+1FBF6)
🯷 (U+1FBF7)
🯸 (U+1FBF8)
🯹 (U+1FBF9)
1 Like

It doesn't actually work. That's why I've asked.

I completely got it now.