Softanza
DémarrerEnglish
Softanza
Référence · stzString

NumberOfChars()

The length of the string in characters (Unicode codepoints).

aussi: length string length length of the string size how long count characters number of letters

aussi écrite: Length

Exemples de base (2)

Softanza
ostr = new stzString("s㊱m")
? ostr.NumberOfChars()
? ostr[2]
Sortie
3
㊱

exécuté le 2026-10-02 04:22 dans la bibliothèque au commit 0e72e2e2c ; tiré de 116_numberofchars.ring(s'ouvre dans un nouvel onglet)

Softanza
# NumberOfChars('softanza') is 8
? Q("softanza").NumberOfChars()
# NumberOfChars('héllo') is 5 (not byte count)
? Q("héllo").NumberOfChars()
Sortie
8
5

exécuté le 2026-10-02 04:23 dans la bibliothèque au commit 0e72e2e2c ; tiré de 00_string_narrated.ring(s'ouvre dans un nouvel onglet)

Portée (8)

Softanza
# M is one char
? Q("M").NumberOfChars()
# the koala too
? Q("🐨").NumberOfChars()
# but four bytes
? len("🐨")
Sortie
1
1
4

exécuté le 2026-10-02 04:24 dans la bibliothèque au commit 0e72e2e2c ; tiré de 859_numberofchars.ring(s'ouvre dans un nouvel onglet)

Softanza
# CharsW with a { Q(@char).isLetter() } block keeps just the letters
? @@( Q("~~H/U/S/S/E/I/N~~").CharsW('{ Q(@char).isLetter() }') )
# the plain-DSL form isLetter(@char) is equivalent
? @@( Q("~~H/U/S/S/E/I/N~~").CharsW('isLetter(@char)') )
# NumberOfCharsW counts the matches
? Q("~~H/U/S/S/E/I/N~~").NumberOfCharsW('{ Q(@char).isLetter() }')
Sortie
[ "H", "U", "S", "S", "E", "I", "N" ]
[ "H", "U", "S", "S", "E", "I", "N" ]
7

exécuté le 2026-10-02 04:24 dans la bibliothèque au commit 0e72e2e2c ; tiré de 713_charsw.ring(s'ouvre dans un nouvel onglet)

Softanza
oAB  = new stzString("ab")
big  = new stzString( oAB.Repeated(1000000) )
oRev = new stzString( big.Reversed() )
# Reversed keeps full length
? oRev.NumberOfChars()
# Reversed head is 'ba'
? oRev.Section(1, 2)
Sortie
2000000
ba

exécuté le 2026-10-02 04:24 dans la bibliothèque au commit 0e72e2e2c ; tiré de 999_engine_string_millions_narrated.ring(s'ouvre dans un nouvel onglet)

Softanza
o1 = new stzString("abc" + nl + "de" + nl + "f")
# NumberOfChars counts every char incl. newlines
? o1.NumberOfChars()
# NumberOfLines is 3
? o1.NumberOfLines()
# SplitQ(NL).NumberOfItems agrees
? o1.SplitQ(nl).NumberOfItems()
Sortie
8
3
3

exécuté le 2026-10-02 04:23 dans la bibliothèque au commit 0e72e2e2c ; tiré de 232_numberofchars.ring(s'ouvre dans un nouvel onglet)

Softanza
? StzCharQ(dec("0x10481")).Content()
? Q("Schöne Grüße").Length() # means "Kind Regards" in german
? StzUnicodeDataQ().CharByName("OSMANYA LETTER BA")
? StzCharQ("ҁ").Name()
? StzCharQ("𐒁").Content()
? Q("𐒁").CharName()
? StzCharQ("OSMANYA LETTER BA").Content()
Sortie
𐒁
12
𐒁
CYRILLIC SMALL LETTER KOPPA
𐒁
OSMANYA LETTER BA
𐒁

exécuté le 2026-10-02 04:22 dans la bibliothèque au commit 0e72e2e2c ; tiré de 07_todo_logical_errors.ring(s'ouvre dans un nouvel onglet)

Softanza
oAB  = new stzString("ab")
big  = new stzString( oAB.Repeated(1000000) )
# NumberOfChars is 2,000,000
? big.NumberOfChars()
# Contains 'ab' is TRUE
? big.Contains("ab")
# FindFirst 'ab' is 1
? big.FindFirst("ab")
# FindLast 'ab' is 1,999,999
? big.FindLast("ab")
Sortie
2000000
1
1
1999999

exécuté le 2026-10-02 04:24 dans la bibliothèque au commit 0e72e2e2c ; tiré de 999_engine_string_millions_narrated.ring(s'ouvre dans un nouvel onglet)

Softanza
oAB  = new stzString("ab")
big  = new stzString( oAB.Repeated(1000000) )
oE = new stzString("😀🎉")
e  = new stzString( oE.Repeated(50000) )
# NumberOfChars is 100,000 codepoints
? e.NumberOfChars()
# NumberOfOccurrences('😀') is 50,000
? e.NumberOfOccurrences("😀")
# Reversed keeps 100,000 codepoints
? StzLen(e.Reversed())
Sortie
100000
50000
100000

exécuté le 2026-10-02 04:24 dans la bibliothèque au commit 0e72e2e2c ; tiré de 999_engine_string_millions_narrated.ring(s'ouvre dans un nouvel onglet)

Softanza
oAB  = new stzString("ab")
big  = new stzString( oAB.Repeated(1000000) )
oUp = new stzString( big.Uppercased() )
# Uppercased keeps full 2,000,000 length
? oUp.NumberOfChars()
# Uppercased head is 'ABAB'
? oUp.Section(1, 4)
# Uppercased has 1,000,000 'A'
? oUp.NumberOfOccurrences("A")
# Uppercased has zero 'a'
? oUp.NumberOfOccurrences("a")
Sortie
2000000
ABAB
1000000
0

exécuté le 2026-10-02 04:24 dans la bibliothèque au commit 0e72e2e2c ; tiré de 999_engine_string_millions_narrated.ring(s'ouvre dans un nouvel onglet)

et 1 autres dans les tests

Les extensions de cette méthode

Chaque extension, et si elle existe pour cette méthode ; une extension qui existe se compose avec les autres (FindSTCS).

Extension
Existe
Ce qu'elle ajoute · Les noms
Q
oui
fait ce que fait la méthode, puis rend l'objet, pour que l'appel puisse s'enchaîner · LengthQ
QQ
non
enchaîne sur le type d'objet suivant, plus précis (l'échelle des Q)
QQQ
non
enchaîne sur le type d'objet le plus précis (l'échelle des Q)
QRT
non
rend le résultat comme un objet du type demandé
CS
non
prend un indicateur de sensibilité à la casse
ST
non
prend la position de départ (StartingAt)
IB
non
prend des bornes incluses (IncludingBounds)
XT
non
la forme étendue : plus de paramètres que la méthode de base
XTT
non
encore une extension : une forme étendue de plus, après XT
Z
non
inclut la position dans ce qu'elle rend
ZZ
non
rend les positions comme des sections, [début, fin]
W
oui
choisit selon une condition · NumberOfCharsW
WF
non
choisit selon une condition, avec les mots-clés expressifs (@NextItem, @PreviousItem...)
D
non
prend une direction, en avant ou en arrière (Directional)
F
non
prend une fonction (la condition ou la mise à jour est donnée comme une fonction) ; le document des formes emploie aussi F pour la forme future, qui diffère l'action
Many
non
travaille sur une collection d'éléments au lieu d'un seul (la forme plurielle)
Except
non
prend des exceptions, ce qu'il faut laisser de côté (la forme exceptionnelle)
U
non
rend le résultat sans doublon

Chaque exemple est un fichier de test de la bibliothèque, exécuté dans la bibliothèque pour cette page ; seuls ceux dont la sortie a tenu toutes les promesses écrites par leur fichier sont montrés. Les explications, les titres et le code sont ceux de la bibliothèque, en anglais.

Voir aussi