Programmer's Reference

Character

The class Character is an abstraction for character data. Characters have values between 0 and 65535, and are unique objects that represent code points. A code point is simply a numeric value--the format and graphical appearance of a character are defined by the currently selected character set. All vendors agree that the characters with values from 0-127 correspond to the ASCII standard character set. However, there is no agreement on the interpretation of other characters. Groups of characters can be composed into either a String or a DBString depending upon the values of the characters being composed.

Note:
Many of the original Smalltalk implementations supported only characters that could be represented by a single byte (characters in the range 0 to 255). Currently, implementations of Objectworks\Smalltalk and Smalltalk/V provide for characters whose value exceeds 255. Characters whose values exceed 255 require two bytes of storage, and are often referred to as double-byte characters. Double-byte character support is critical for the development of applications for the international market place because many languages use more than 256 characters.

Accessing

value, digitValue

Porting tip:
CLDT does not support the Blue Book method asciiValue because it is not appropriate for characters whose value exceeds 127, the range of values converted by the ASCII standard. Rather, the asciiValue message is replaced by the more general message value. Objectworks\Smalltalk does not support the message value, but uses asInteger as the equivalent message. Smalltalk/V does not support the message value, but uses asciiValue as the equivalent message.

Converting

asLowercase, asSymbol, asUppercase, asString

Porting tip:
Smalltalk/V uses the spelling asLowerCase and asUpperCase, and does not support asSymbol. Character conversions outside the ASCII range of values (0 to 127) vary from platform to platform and from language to language. Character conversion results might differ between platforms. Objectworks\Smalltalk does not support asString.

Creating instances (Character class)

digitValue:, value:

Note:
The Blue Book specifies that class Character should support messages that provide access to several of the standard ASCII nonprinting characters used for text formatting: backspace, cr, esc, newPage, space, and tab. Objectworks\Smalltalk adopts this approach, and extends it to support several additional characters. The approach taken by IBM Smalltalk is to supply all of the nonprinting ASCII characters in a pool dictionary called CldtConstants as shown in Table 2.
Porting tip:
Smalltalk/V does not support the message value:.

Table 2. The CldtConstants pool dictionary

(ASCII character values)
Key ASCII Character Value Key ASCII Character Value
Ack 6 Ff 12
Bell 7 Fs 28
Bs 8 Gs 29
Can 24 Lf 10
Cr 13 Nak 21
Dc1 17 Nul 0
Dc2 18 Rs 30
Dc3 19 Si 15
Dc4 20 So 14
Del 127 Soh 1
Dle 16 Space 32
Em 25 Stx 2
Enq 5 Sub 26
Eot 4 Syn 22
Esc 27 Tab 9
Etb 23 Us 31
Etx 3 Vt 11

Table 3. The CldtConstants pool dictionary

(LineDelimiter values)
Key Value
LineDelimiter The platform-specific line delimiter string
PMLineDelimiter The string consisting of Cr followed by Lf
WINLineDelimiter The string consisting of Cr followed by Lf

Testing

isAlphaNumeric, isDigit, isLetter, isLowercase, supplantation, isSeparator, isUppercase, isVowel

Porting tip:
Smalltalk/V uses the spelling isLowerCase and isUpperCase. Character classifications outside the ASCII range of values (0 to 127) vary from platform to platform and from language to language. Character conversion results might differ between platforms. Neither Objectworks\Smalltalk nor Smalltalk/V support isPunctuation for Characters.


[ Top of Page | Previous Page | Next Page | Table of Contents | Index ]