- Page ID
String class is also defined in the category Collections-Strings. A
String is an indexed
Collection that holds only
String is abstract and Squeak
Strings are actually instances of the concrete class
'hello world' class → ByteString
The other important subclass of
Symbol. The key difference is that there is only ever a single instance of
Symbol with a given value. (This is sometimes called “the unique instance property”). In contrast, two separately constructed
Strings that happen to contain the same sequence of characters will often be different objects.
'hel','lo' == 'hello' → false
('hel','lo') asSymbol == #hello → true
Another important difference is that a
String is mutable, whereas a
Symbol is immutable.
'hello' at: 2 put: $u; yourself → 'hullo'
#hello at: 2 put: $u → error
It is easy to forget that since strings are collections, they understand the same messages that other collections do:
#hello indexOf: $o → 5
String does not inherit from
Magnitude, it does support the usual comparing methods, <, = and so on. In addition, String»match: is useful for some basic glob-style pattern-matching:
'*or*' match: 'zorro' → true
Should you need more advanced support for regular expressions, there are a number of third party implementations available, such as Vassili Bykov’s Regex package.
Strings support rather a large number of conversion methods. Many of these are shortcut constructor methods for other classes, such as
asFileName and so on. There are also a number of useful methods for converting a string to another string, such as
For more on strings and collections, see Chapter 9.