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

Find()

Find pcSubStr in the string: the positions of EVERY occurrence, as a list (engine-backed, codepoint-aware). (case-sensitive by default)

aussi: locate search for position of index of where is

aussi écrite: FindAll · FindSubString

Exemples de base (2)

Softanza
# FindW reports those two positions
? @@( Q("...♥...♥...").FindW('@char = "♥"') )
Sortie
[ 4, 8 ]

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

Softanza
# FindW with isDigit(@char) reports the digit positions
? @@( Q("1 AA 6 B 0 CCC 6 DD 1 Z").FindW('isDigit(@char)') )
Sortie
[ 1, 6, 10, 16, 21 ]

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

Portée (4)

Softanza
oS = new stzString("tea rice tea fish")
? oS.Contains("tea")
? oS.NumberOfOccurrence("tea")
? @@( oS.FindAll("tea") )
Sortie
1
2
[ 1, 10 ]

exécuté le 2026-10-02 04:24 dans la bibliothèque au commit 0e72e2e2c ; tiré de 05-one-object-any-structure.en.md(s'ouvre dans un nouvel onglet)

Softanza
o1 = new stzString("...emm...eh..emm...eh")
? @@( o1.FindMany([ "emm", "eh" ]) )
? @@(o1.FindManyAsSections([ "emm", "eh" ]))
? @@( o1.Find([ "emm", "eh" ]) )
? @@(o1.FindAsSections([ "emm", "eh" ])) # Of FindZZ() for short
Sortie
[ 4, 10, 14, 20 ]
[ [ 4, 6 ], [ 10, 11 ], [ 14, 16 ], [ 20, 21 ] ]
[ 4, 10, 14, 20 ]
[ [ 4, 6 ], [ 10, 11 ], [ 14, 16 ], [ 20, 21 ] ]

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

Softanza
# FindZZ locates the section of Programming
? @@( Q("Softanza Programming by Heart").FindZZ("Programming") )
# ReplaceInSection m->M inside [10,20]
o = new stzString("Softanza Programming by Heart")
o.ReplaceInSection("m", "M", 10, 20)
? o.Content()
Sortie
[ [ 10, 20 ] ]
Softanza PrograMMing by Heart

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

Softanza
oAB  = new stzString("ab")
big  = new stzString( oAB.Repeated(1000000) )
# NumberOfOccurrences('a') is 1,000,000 (> 65536)
? big.NumberOfOccurrences("a")
# FindAll('a') returns all 1,000,000 positions
? len(big.FindAll("a"))
# NumberOfOccurrences('ab') is 1,000,000
? big.NumberOfOccurrences("ab")
Sortie
1000000
1000000
1000000

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)

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
non
fait ce que fait la méthode, puis rend l'objet, pour que l'appel puisse s'enchaîner
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
oui
prend un indicateur de sensibilité à la casse · FindCS, FindAllCS, FindSubStringCS, FindWCS et 2 autres
ST
oui
prend la position de départ (StartingAt) · FindST, FindSTZ, FindStD, FindSTZZ et 2 autres
IB
non
prend des bornes incluses (IncludingBounds)
XT
oui
la forme étendue : plus de paramètres que la méthode de base · FindXT
XTT
non
encore une extension : une forme étendue de plus, après XT
Z
oui
inclut la position dans ce qu'elle rend · FindZ, FindDZ, FindSTZ, FindSTDZ
ZZ
oui
rend les positions comme des sections, [début, fin] · FindZZ, FindAllZZ, FindDZZ, FindSTZZ et 4 autres
W
oui
choisit selon une condition · FindW, FindWCS
WF
non
choisit selon une condition, avec les mots-clés expressifs (@NextItem, @PreviousItem...)
D
oui
prend une direction, en avant ou en arrière (Directional) · FindD, FindDZ, FindDZZ, FindStD et 2 autres
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
oui
travaille sur une collection d'éléments au lieu d'un seul (la forme plurielle) · FindMany, FindManyCS, FindManyZZ
Except
oui
prend des exceptions, ce qu'il faut laisser de côté (la forme exceptionnelle) · FindExceptZZ
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