SubStrings()
ENGINE-BACKED (StzEngineStringSubStrings): all substrings in (i,j) order, no dedup. Retires the O(n^2) Haro double-loop.
aussi écrite: Substrinks · Substrongs
Exemples de base (2)
# length-4 substrings containing a heart pair
? @@( Q("..♥^^♥..^♥♥^..").SubStringsWF( func s { return Q(s).NumberOfChars() = 4 and Q(s).ContainsCS("♥♥", 1) } ) )[ ".^♥♥", "^♥♥^", "♥♥^." ]
exécuté le 2026-10-02 04:23 dans la bibliothèque au commit 0e72e2e2c ; tiré de 147_substringswf.ring(s'ouvre dans un nouvel onglet)
o1 = new stzString("RINGORIALAND")
# there are 12*13/2 = 78 substrings
? o1.NumberOfSubStrings()
# SubStrings() returns that many
? len( o1.SubStrings() )78 78
exécuté le 2026-10-02 04:23 dans la bibliothèque au commit 0e72e2e2c ; tiré de 125_numberofsubstrings.ring(s'ouvre dans un nouvel onglet)
Portée (3)
oA = new stzString("a")
s = new stzString( oA.Repeated(1000) )
# NumberOfSubStrings is 500,500 (L(L+1)/2)
? s.NumberOfSubStrings()
# SubStrings() enumerates all 500,500
? len(s.SubStrings())
# SubStringsU() distinct is 1,000 (a^1..a^1000)
? len(s.SubStringsU())500500 500500 1000
exécuté le 2026-10-02 04:24 dans la bibliothèque au commit 0e72e2e2c ; tiré de 998_engine_string_largedata_narrated.ring(s'ouvre dans un nouvel onglet)
oA = new stzString("a")
m = new stzString("aA")
big = new stzString( m.Repeated(50) )
# SubStringsCS(1) exact-distinct is 199
? len(big.SubStringsCS(1))
# SubStringsU() folds all case -> 100 (like a^100)
? len(big.SubStringsU())
# DuplicatesCS(1) exact is 99
? len(big.DuplicatesCS(1))
# DuplicatesCS(0) case-insensitive dedup is 50
? len(big.DuplicatesCS(0))199 100 99 50
exécuté le 2026-10-02 04:24 dans la bibliothèque au commit 0e72e2e2c ; tiré de 998_engine_string_largedata_narrated.ring(s'ouvre dans un nouvel onglet)
oA = new stzString("a")
s = new stzString( oA.Repeated(100) )
# NumberOfSubStrings is 5,050
? s.NumberOfSubStrings()
# SubStrings() enumerates 5,050
? len(s.SubStrings())
# SubStringsU() is 100
? len(s.SubStringsU())
# DuplicatesCS(1) is 50
? len(s.DuplicatesCS(1))
# ConsecutiveSubStrings is 3,775
? len(s.ConsecutiveSubStrings())
# FindDupSecutiveChars is 99
? len(s.FindDupSecutiveChars())5050 5050 100 50 3775 99
exécuté le 2026-10-02 04:24 dans la bibliothèque au commit 0e72e2e2c ; tiré de 998_engine_string_largedata_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).
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
- La classe stzString
- La référence du domaine : Chaînes de caractères
- Les autres méthodes de ces exemples : stzString.ConsecutiveSubStrings · stzString.Duplicates · stzString.FindDupSecutiveChars · stzString.NumberOfSubStrings

