Softanza
StartFrançais
Softanza
The library documents itself · String

stzStringList

92 own methods · 65 forms written with extensions, listed under their method

also named: stzListOfstrings

the source: base/string/stzStringList.ring(opens in a new tab) · All classes · The area reference: String

Under each method, its extensions (Q CS XT Z ZZ IB W U): bold and ticked, it exists; struck, it does not. The extensions and what they mean

Examples: 0 come from the library's tests; 54 were composed from each method's signature and run for this page, on a fresh object, for example o1 = new stzStringList([ "tea", "rice", "fish" ]). 38 methods have none yet. Examples run on 2026-10-03 20:34 inside the library at commit 0e72e2e2c.

Method
Explanation, as the source carries it
init
Build the string-list object from the given list of strings.no extension
Content
(Doc()/Ask()/AskFor()/ExplainMethod() are inherited from stzObject.)no extension
Copy
A new stzStringList with the same strings.no extension
NumberOfStrings
How many strings the list holds.also written: Size
composed example
o1 = new stzStringList([ "tea", "rice", "fish" ])
? o1.NumberOfStrings()
#--> 3
composed from the signature, run for this page
no extension
NthString
The string at position n.also written: String
composed example
o1 = new stzStringList([ "tea", "rice", "fish" ])
? o1.NthString(2)
#--> rice
composed from the signature, run for this page
no extension
FirstString
The first string of the list.
composed example
o1 = new stzStringList([ "tea", "rice", "fish" ])
? o1.FirstString()
#--> tea
composed from the signature, run for this page
no extension
LastString
The last string of the list.
composed example
o1 = new stzStringList([ "tea", "rice", "fish" ])
? o1.LastString()
#--> fish
composed from the signature, run for this page
no extension
Add
Add the given string at the end of the list (mutating).
composed example
o1 = new stzStringList([ "tea", "rice", "fish" ])
o1.Add("a")
? @@( o1.Content() )
#--> [ "tea", "rice", "fish", "a" ]
composed from the signature, run for this page
QCSXTZZZIBWU
Prepend
Insert the given string at the start of the list (mutating).
composed example
o1 = new stzStringList([ "tea", "rice", "fish" ])
o1.Prepend("a")
? @@( o1.Content() )
#--> [ "a", "tea", "rice", "fish" ]
composed from the signature, run for this page
QCSXTZZZIBWU
RemoveAt
Remove the string at position n (mutating).
composed example
o1 = new stzStringList([ "tea", "rice", "fish" ])
o1.RemoveAt(2)
? @@( o1.Content() )
#--> [ "tea", "fish" ]
composed from the signature, run for this page
QCSXTZZZIBWU
ReplaceAt
Replace the string at position n with the given one (mutating).
composed example
o1 = new stzStringList([ "tea", "rice", "fish" ])
o1.ReplaceAt(2, "AN")
? @@( o1.Content() )
#--> [ "tea", "AN", "fish" ]
composed from the signature, run for this page
QCSXTZZZIBWU
Update
Replace the whole content with the given list of strings (mutating; the single update point).QCSXTZZZIBWU
Concat
All the strings concatenated into one string.also written: Joined · Concatenated
composed example
o1 = new stzStringList([ "tea", "rice", "fish" ])
? o1.Concat()
#--> tearicefish
composed from the signature, run for this page
QCSXTZZZIBWU
ConcatUsing
The strings concatenated with the given separator between them.also written: JoinedUsing · ConcatenatedUsing
composed example
o1 = new stzStringList([ "tea", "rice", "fish" ])
? o1.ConcatUsing(" ")
#--> tea rice fish
composed from the signature, run for this page
no extension
Contains
Same as ContainsCS: TRUE if one of the strings equals pcStr.
composed example
o1 = new stzStringList([ "tea", "rice", "fish" ])
? o1.Contains("a")
#--> 0
composed from the signature, run for this page
QCSXTZZZIBWU
ContainsSubString
contains substring in any string
composed example
o1 = new stzStringList([ "tea", "rice", "fish" ])
? o1.ContainsSubString("a")
#--> 1
composed from the signature, run for this page
QCSXTZZZIBWU
Find
Same as FindCS: The positions of every string equal to pcStr, as a list.QCSXTZZZIBWU
FindFirst
The position of the first string equal to pcStr (0 if none).
composed example
o1 = new stzStringList([ "tea", "rice", "fish" ])
? o1.FindFirst("a")
#--> 0
composed from the signature, run for this page
QCSXTZZZIBWU
FindLast
The position of the last string equal to pcStr (0 if none).
composed example
o1 = new stzStringList([ "tea", "rice", "fish" ])
? o1.FindLast("a")
#--> 0
composed from the signature, run for this page
QCSXTZZZIBWU
FindString
Same as FindCS: The positions of every string equal to pcStr, as a list.QCSXTZZZIBWU
FindNthOccurrence
Same as FindNthOccurrenceCS: The position of the Nth string equal to pcStr, or 0 when there are fewer than N of them.
composed example
o1 = new stzStringList([ "tea", "rice", "fish" ])
? o1.FindNthOccurrence(2, "a")
#--> 0
composed from the signature, run for this page
QCSXTZZZIBWU
NumberOfOccurrence
Same as NumberOfOccurrenceCS: How many strings EQUAL pcStr.
composed example
o1 = new stzStringList([ "tea", "rice", "fish" ])
? o1.NumberOfOccurrence("a")
#--> 0
composed from the signature, run for this page
QCSXTZZZIBWU
NumberOfOccurrences
Same as NumberOfOccurrenceCS: How many strings EQUAL pcStr.
composed example
o1 = new stzStringList([ "tea", "rice", "fish" ])
? o1.NumberOfOccurrences("a")
#--> 0
composed from the signature, run for this page
no extension
NumberOfOccurrenceOfSubString
Same as NumberOfOccurrenceOfSubStringCS: How many times pcSubStr occurs INSIDE the strings, summed over all of them -- a different question from the one above, and the reason both names exist.
composed example
o1 = new stzStringList([ "tea", "rice", "fish" ])
? o1.NumberOfOccurrenceOfSubString("a")
#--> 1
composed from the signature, run for this page
QCSXTZZZIBWU
DuplicatedStrings
Same as DuplicatedStringsCS: The strings that appear more than once, each named ONCE and in the order of their first appearance.QCSXTZZZIBWU
RemoveAll
Same as RemoveAllCS: Every string equal to pcStr goes. Walks BACKWARDS: removing forwards shifts the positions still to be visited, which is how this kind of loop silently skips a neighbouring duplicate.QCSXTZZZIBWU
RemoveFirst
Same as RemoveFirstCS: Only the FIRST one goes.QCSXTZZZIBWU
RemoveFirstString
No argument: drop whatever sits first, whatever it is.
composed example
o1 = new stzStringList([ "tea", "rice", "fish" ])
o1.RemoveFirstString()
? @@( o1.Content() )
#--> [ "rice", "fish" ]
composed from the signature, run for this page
QCSXTZZZIBWU
RemoveLastString
(no comment in the source: the name reads as a sentence) remove last stringin the section the vocabulary the tests already speak
composed example
o1 = new stzStringList([ "tea", "rice", "fish" ])
o1.RemoveLastString()
? @@( o1.Content() )
#--> [ "tea", "rice" ]
composed from the signature, run for this page
QCSXTZZZIBWU
RemoveNthOccurrence
(no comment in the source: the name reads as a sentence) remove nth occurrencein the section the vocabulary the tests already speakQCSXTZZZIBWU
RemoveStringAtPosition
(no comment in the source: the name reads as a sentence) remove string at positionin the section the vocabulary the tests already speak
composed example
o1 = new stzStringList([ "tea", "rice", "fish" ])
o1.RemoveStringAtPosition(2)
? @@( o1.Content() )
#--> [ "tea", "fish" ]
composed from the signature, run for this page
QCSXTZZZIBWU
RemoveNthString
The test file says it plainly: "RemoveNthString(3) # or RemoveStringAtPosition(3)". Both spellings, one implementation.
composed example
o1 = new stzStringList([ "tea", "rice", "fish" ])
o1.RemoveNthString(2)
? @@( o1.Content() )
#--> [ "tea", "fish" ]
composed from the signature, run for this page
QCSXTZZZIBWU
RemoveStringsAtThesePositions
Positions are read against the ORIGINAL list, so they are sorted and applied from the back. Taking them in the order given would make each removal shift the ones after it.
composed example
o1 = new stzStringList([ "tea", "rice", "fish" ])
o1.RemoveStringsAtThesePositions([ 2, 3 ])
? @@( o1.Content() )
#--> [ "tea" ]
composed from the signature, run for this page
QCSXTZZZIBWU
RemoveMany
(no comment in the source: the name reads as a sentence) remove manyin the section the vocabulary the tests already speakQCSXTZZZIBWU
RemoveEmptyStrings
An empty string is "", not a string of spaces -- RemoveSpaces() above is the one that judges whitespace.QCSXTZZZIBWU
ReplaceString
Same as ReplaceStringCS: Every string equal to pcOld becomes pcNew.QCSXTZZZIBWU
ReplaceManyOneByOne
Same as ReplaceManyOneByOneCS: The two lists must be the same length; a mismatch replaces nothing rather than guessing which pairing was meant.QCSXTZZZIBWU
Move
Both arguments arrive as named pairs, so the number is the SECOND element. A bare number is accepted too, for callers who do not need the ceremony.QCSXTZZZIBWU
Swap
Swap( :BetweenString = 1, :AndString = 2 )QCSXTZZZIBWU
FindAll
Same as FindCS: The positions of every string equal to pcStr, as a list.QCSXTZZZIBWU
WordsSortingOrders
:Ascending, :Descending, or :Unsorted for neither. A string of fewer than two words is :Ascending -- there is no pair to be out of order, and calling it unsorted would read as a complaint.
composed example
o1 = new stzStringList([ "tea", "rice", "fish" ])
? @@( o1.WordsSortingOrders() )
#--> [ "ascending", "ascending", "ascending" ]
composed from the signature, run for this page
QCSXTZZZIBWU
NumberOfStringsWhereWordsAreSortedInAscending
How many strings fall in each verdict. Counted from the one list above so the three can never disagree with it, or with each other -- they sum to NumberOfStrings() by construction.
composed example
o1 = new stzStringList([ "tea", "rice", "fish" ])
? o1.NumberOfStringsWhereWordsAreSortedInAscending()
#--> 3
composed from the signature, run for this page
no extension
NumberOfStringsWhereWordsAreSortedInDescending
(no comment in the source: the name reads as a sentence) number of strings where words are sorted in descendingin the section the vocabulary the tests already speak
composed example
o1 = new stzStringList([ "tea", "rice", "fish" ])
? o1.NumberOfStringsWhereWordsAreSortedInDescending()
#--> 0
composed from the signature, run for this page
no extension
NumberOfStringsWhereWordsAreUnsorted
(no comment in the source: the name reads as a sentence) number of strings where words are unsortedin the section the vocabulary the tests already speak
composed example
o1 = new stzStringList([ "tea", "rice", "fish" ])
? o1.NumberOfStringsWhereWordsAreUnsorted()
#--> 0
composed from the signature, run for this page
no extension
IsUppercase
TRUE when EVERY string is uppercase. An empty list answers FALSE: there is no string in it that is uppercase, and answering TRUE for "all of nothing" reads as a claim about content that is not there.
composed example
o1 = new stzStringList([ "tea", "rice", "fish" ])
? o1.IsUppercase()
#--> 0
composed from the signature, run for this page
no extension
IsLowercase
(no comment in the source: the name reads as a sentence) is lowercasein the section the vocabulary the tests already speak
composed example
o1 = new stzStringList([ "tea", "rice", "fish" ])
? o1.IsLowercase()
#--> 1
composed from the signature, run for this page
no extension
ContainsSubstringInEachString
Same as ContainsSubstringInEachStringCS: TRUE when the substring is in EVERY string -- not merely in one of them, which is what ContainsSubString() above answers.
composed example
o1 = new stzStringList([ "tea", "rice", "fish" ])
? o1.ContainsSubstringInEachString("a")
#--> 0
composed from the signature, run for this page
QCSXTZZZIBWU
WordsOfEachStringAreSortedInAscending
A string of one word is trivially in order, so a list of them answers TRUE; an EMPTY list answers FALSE, matching IsUppercase above rather than claiming something about content that is not there.also written: WordsOfEachStringSortedInAscending
composed example
o1 = new stzStringList([ "tea", "rice", "fish" ])
? o1.WordsOfEachStringAreSortedInAscending()
#--> 1
composed from the signature, run for this page
no extension
WordsOfEachStringAreSortedInDescending
(no comment in the source: the name reads as a sentence) words of each string are sorted in descendingalso written: WordsOfEachStringSortedInDescendingin the section the vocabulary the tests already speak
composed example
o1 = new stzStringList([ "tea", "rice", "fish" ])
? o1.WordsOfEachStringAreSortedInDescending()
#--> 1
composed from the signature, run for this page
no extension
SortInAscending
Same as SortInAscendingCS: Sort the strings in ascending order in place (mutating).
composed example
o1 = new stzStringList([ "tea", "rice", "fish" ])
o1.SortInAscending()
? @@( o1.Content() )
#--> [ "fish", "rice", "tea" ]
composed from the signature, run for this page
QCSXTZZZIBWU
SortUp
Same as SortInAscending: Same as SortInAscendingCS: Sort the strings in ascending order in place (mutating).
composed example
o1 = new stzStringList([ "tea", "rice", "fish" ])
o1.SortUp()
? @@( o1.Content() )
#--> [ "fish", "rice", "tea" ]
composed from the signature, run for this page
no extension
SortedInAscending
Same as SortedInAscendingCS: An ascending-sorted copy; the original is unchanged.also written: SortedUp
composed example
o1 = new stzStringList([ "tea", "rice", "fish" ])
? @@( o1.SortedInAscending() )
#--> [ "fish", "rice", "tea" ]
composed from the signature, run for this page
QCSXTZZZIBWU
Sorted
Sorted() shorthand -- default ascending case-sensitive sort, used by narrative one-liners like `o.Sorted()` that don't distinguish direction.
composed example
o1 = new stzStringList([ "tea", "rice", "fish" ])
? @@( o1.Sorted() )
#--> [ "fish", "rice", "tea" ]
composed from the signature, run for this page
no extension
WithoutSpaces
WithoutSpaces / WithoutSapces (Softanza intentionally accepts the misspelled form): return the content with every space removed from each string item.also written: TrimAll · WithoutSapcesno extension
SortInDescending
Sort the strings in descending order in place (mutating).QCSXTZZZIBWU
SortDown
Same as SortInDescending: Sort the strings in descending order in place (mutating).no extension
SortedInDescending
A descending-sorted copy; the original is unchanged.also written: SortedDownno extension
SortBy
SortBy(cExpr): sort by an eval'd expression where @string aliases the per-item string. Pre-compute keys once, then insertion-sort over (key, value) pairs.QCSXTZZZIBWU
Reverse
Reverse the order of the strings in place (mutating).
composed example
o1 = new stzStringList([ "tea", "rice", "fish" ])
o1.Reverse()
? @@( o1.Content() )
#--> [ "fish", "rice", "tea" ]
composed from the signature, run for this page
QCSXTZZZIBWU
Reversed
The strings in reverse order, as a Haro list; the original is unchanged.
composed example
o1 = new stzStringList([ "tea", "rice", "fish" ])
? @@( o1.Reversed() )
#--> [ "fish", "rice", "tea" ]
composed from the signature, run for this page
no extension
Unique
unique (remove duplicates, engine-backed)QCSXTZZZIBWU
RemoveDuplicates
unique (remove duplicates, engine-backed)no extension
UniqueItems
unique (remove duplicates, engine-backed)also written: WithoutDuplicatesno extension
Filter
filter -- strings containing a substring
composed example
o1 = new stzStringList([ "tea", "rice", "fish" ])
? @@( o1.Filter("a") )
#--> [ "tea" ]
composed from the signature, run for this page
QCSXTZZZIBWU
FilterByStartsWith
filter by starts-with / ends-withQCSXTZZZIBWU
FilterByEndsWith
filter by starts-with / ends-with
composed example
o1 = new stzStringList([ "tea", "rice", "fish" ])
? @@( o1.FilterByEndsWith("a") )
#--> [ "tea" ]
composed from the signature, run for this page
QCSXTZZZIBWU
ToUpper
Uppercase every string in place (mutating).QCSXTZZZIBWU
Uppercased
A copy with every string uppercased; the original is unchanged.
composed example
o1 = new stzStringList([ "tea", "rice", "fish" ])
? @@( o1.Uppercased() )
#--> [ "TEA", "RICE", "FISH" ]
composed from the signature, run for this page
no extension
ToLower
Lowercase every string in place (mutating).QCSXTZZZIBWU
Lowercased
A copy with every string lowercased; the original is unchanged.no extension
MostSimilarTo
similarity (engine-backed jaro / jarowinkler)
composed example
o1 = new stzStringList([ "tea", "rice", "fish" ])
? o1.MostSimilarTo("a")
#--> tea
composed from the signature, run for this page
no extension
SimilarTo
similarity (engine-backed jaro / jarowinkler)QCSXTZZZIBWU
ToString
The strings joined with newlines, as one string.
composed example
o1 = new stzStringList([ "tea", "rice", "fish" ])
? o1.ToString()
#--> tea
#--> rice
#--> fish
composed from the signature, run for this page
no extension
ToListOfStzStrings
Each string wrapped as a stzString object, as a list.
composed example
o1 = new stzStringList([ "tea", "rice", "fish" ])
? @@( o1.ToListOfStzStrings() )
#--> [ @noname, @noname, @noname ]
composed from the signature, run for this page
no extension
ToStzList
The strings as a stzList object.no extension
Split
Split each string on the given separator.
composed example
o1 = new stzStringList([ "tea", "rice", "fish" ])
? @@( o1.Split(" ") )
#--> [ [ "tea" ], [ "rice" ], [ "fish" ] ]
composed from the signature, run for this page
no extension
Trim
Trim the spaces around each string in place (mutating).QCSXTZZZIBWU
Trimmed
A copy with each string trimmed; the original is unchanged.no extension
Matches
The strings matching the given regex pattern.
composed example
o1 = new stzStringList([ "tea", "rice", "fish" ])
? o1.Matches("a")
#--> 0
composed from the signature, run for this page
no extension
IsStzStringList
Always TRUE: the object IS a stzStringList.
composed example
o1 = new stzStringList([ "tea", "rice", "fish" ])
? o1.IsStzStringList()
#--> 1
composed from the signature, run for this page
no extension
stzType
The Softanza type symbol: :stzStringList.also written: ClassName
composed example
o1 = new stzStringList([ "tea", "rice", "fish" ])
? o1.stzType()
#--> stzstringlist
composed from the signature, run for this page
no extension
Concatenate
All the strings concatenated, no separator.
composed example
o1 = new stzStringList([ "tea", "rice", "fish" ])
? o1.Concatenate()
#--> tearicefish
composed from the signature, run for this page
QCSXTZZZIBWU
SpacesRemoved
The strings with their spaces removed, as data.no extension
ConcatenateUsing
Same as ConcatenateXT: Long-tail methods needed by the test suite.
composed example
o1 = new stzStringList([ "tea", "rice", "fish" ])
? o1.ConcatenateUsing(" ")
#--> tea rice fish
composed from the signature, run for this page
no extension
RemoveSpaces
Remove the spaces inside each string (mutating).QCSXTZZZIBWU
SubStrongs
Substrongs/Substrinks (deliberate Softanza wordplay): the strings that CONTAIN another item of the list, and the ones that are CONTAINED IN another item (case-sensitive, engine-backed find).no extension
SubStrinks
The items CONTAINED IN another item of the list -- the mirror of SubStrongs, not an alias of it (the old comment said "the substrings of each string", which describes neither).no extension
StringsW
The strings satisfying the given W expression.no extension
Yield
StringsW above answers WHICH strings matched; this answers what the condition said about each one, so the result lines up with Content() position for position. Same evaluation, two questions.
composed example
o1 = new stzStringList([ "tea", "rice", "fish" ])
? @@( o1.Yield("@item > 3") )
#--> [ 0, 0, 0 ]
composed from the signature, run for this page
QCSXTZZZIBWU
ThatContain
Lexical (non-semantic) selection over a list of fragments -- substring membership and word-length ranking -- so chains like Q(text).WordsQ().ThatContain("ing").Longest() read naturally. These are STRING ops (any list of strings has them). MEANING-based selection (MostSimilarByMeaning, ThatAre by sentiment) lives on stzListOfTexts, the list-of-texts domain -- because that is natural processing, not a string op. Fragments that contain pcSub (engine-backed, codepoint-safe).
composed example
o1 = new stzStringList([ "tea", "rice", "fish" ])
? @@( o1.ThatContain("a") )
#--> [ "tea" ]
composed from the signature, run for this page
QCSXTZZZIBWU
Longest
The string with the MOST words.
composed example
o1 = new stzStringList([ "tea", "rice", "fish" ])
? o1.Longest()
#--> tea
composed from the signature, run for this page
no extension
Shortest
The string with the FEWEST words.
composed example
o1 = new stzStringList([ "tea", "rice", "fish" ])
? o1.Shortest()
#--> tea
composed from the signature, run for this page
no extension