The following methods will return false for any Characters with ascii value
> 122 ($z), regardless if the correct answer is true or false.
Character >> isLowercase
Character >> isUppercase
Character >> isLetter
Character >> isVowel
Login as SystemUser and file in the following code:
!-----------------------------------------------------------------------------
category: 'Testing'
method: Character
isLetter
"Returns true if the receiver is a Roman letter. Returns false otherwise."
^ (self isLowercase) _or: [ self isUppercase ]
%
category: 'Testing'
method: Character
isLowercase
"Returns true if the receiver is a lower-case character. Returns false
otherwise."
| val |
val:= self asciiValue.
(val < 97) ifTrue: [ ^ false ].
(val < 123) ifTrue: [ ^ true ].
(val < 223) ifTrue: [ ^ false ].
(val < 256) ifTrue: [ ^ (val == 247) not ].
^ false
%
category: 'Testing'
method: Character
isUppercase
"Returns true if the receiver is an upper-case character. Returns false
otherwise."
| val | val:= self asciiValue. (val < 65) ifTrue: [ ^ false ]. (val <
91) ifTrue: [ ^ true ]. (val < 192) ifTrue: [ ^ false ]. (val < 223)
ifTrue: [ ^ (val == 215) not ].
^ false
%
category: 'Testing'
method: Character
isVowel
"Returns true if the receiver is a vowel ('Y' is considered to be a vowel).
Returns false otherwise."
| aChar val | aChar:= self asUppercase. val := aChar asciiValue. (val <
127) ifTrue: [
^ (aChar == $A) _or:
[(aChar == $E) _or:
[(aChar == $I) _or:
[(aChar == $O) _or:
[(aChar == $U) _or:
[aChar == $Y]]]]]]. (val < 16rC0) ifTrue: [ ^ false ]. (val <=
16rC6) ifTrue: [ ^ true ]. (val < 16rC8) ifTrue: [ ^ false ]. (val <=
16rCF) ifTrue: [ ^ true ]. (val < 16rD2) ifTrue: [ ^ false ]. (val <=
16rD6) ifTrue: [ ^ true ]. (val < 16rD8) ifTrue: [ ^ false ]. (val <=
16rDD) ifTrue: [ ^ true ]. (val < 16rFF) ifTrue: [ ^ false ]. (val ==
16rFF) ifTrue: [ ^ true ].
" Currently doesn't check for val > 16rFF / 255 "
^ false
%
category: 'Testing'
method: Character
_type
"Returns 1 for alpha, 2 for digit, and 3 for special."
self isLetter ifTrue: [ ^ 1]. self isDigit ifTrue: [ ^ 2].
^ 3
%
!-----------------------------------------------------------------------------
Last updated: 2/6/06