Subject: Re: Capitalizing a string? From: "Russell Steven Shawn O'Connor" <roconnor@xxxxxxxxxxxxxxxxxxxxxxxxx> Date: Wed, 9 Dec 1998 19:01:09 -0500 (EST) |
On 9 Dec 1998, J-P Theberge wrote: > Hi, > > Is there a function to capitalize a string? > > "string" => "String" I have written two routines to convert from "foo-bar" or "foo bar" to "fooBar or "FooBar". They are called *studlyCaps* and *StudlyCaps* respectively and are listed below. If you truely want to only upcase the first letter then I think the following will work on the string str: (string-append (string (char-upcase (string-ref str 0))) (substring str 1 (string-length str)) ) (Hmmm, There is probably a better way of doing that.) (define (*studlyCapsLoop* strBefore strAfter upcase) (cond ((= 0 (string-length strBefore)) strAfter) ((or (char=? (string-ref strBefore 0) #\space) (char=? (string-ref strBefore 0) #\-) ) (*studlyCapsLoop* (substring strBefore 1 (string-length strBefore)) strAfter #t ) ) (#t (*studlyCapsLoop* (substring strBefore 1 (string-length strBefore)) (string-append strAfter (string ((if upcase char-upcase char-downcase) (string-ref strBefore 0))) ) #f ) ) ) ) (define (*studlyCaps* str) (*studlyCapsLoop* str "" #f) ) (define (*StudlyCaps* str) (*studlyCapsLoop* str "" #t) Rumour has it that char-upcase isn't implemented in Jade. I believe you can, and should, get the function from the DSSSL cookbook. But for the record, here is mine: (define (char-upcase ch) (cond ((char=? #\a ch) #\A) ((char=? #\b ch) #\B) ((char=? #\c ch) #\C) ((char=? #\d ch) #\D) ((char=? #\e ch) #\E) ((char=? #\f ch) #\F) ((char=? #\g ch) #\G) ((char=? #\h ch) #\H) ((char=? #\i ch) #\I) ((char=? #\j ch) #\J) ((char=? #\k ch) #\K) ((char=? #\l ch) #\L) ((char=? #\m ch) #\M) ((char=? #\n ch) #\N) ((char=? #\o ch) #\O) ((char=? #\p ch) #\P) ((char=? #\q ch) #\Q) ((char=? #\r ch) #\R) ((char=? #\s ch) #\S) ((char=? #\t ch) #\T) ((char=? #\u ch) #\U) ((char=? #\v ch) #\V) ((char=? #\w ch) #\W) ((char=? #\x ch) #\X) ((char=? #\y ch) #\Y) ((char=? #\z ch) #\Z) (#t ch) ) ) (define (char-downcase ch) (cond ((char=? #\A ch) #\a) ((char=? #\B ch) #\b) ((char=? #\C ch) #\c) ((char=? #\D ch) #\d) ((char=? #\E ch) #\e) ((char=? #\F ch) #\f) ((char=? #\G ch) #\g) ((char=? #\H ch) #\h) ((char=? #\I ch) #\i) ((char=? #\J ch) #\j) ((char=? #\K ch) #\k) ((char=? #\L ch) #\l) ((char=? #\M ch) #\m) ((char=? #\N ch) #\n) ((char=? #\O ch) #\o) ((char=? #\P ch) #\p) ((char=? #\Q ch) #\q) ((char=? #\R ch) #\r) ((char=? #\S ch) #\s) ((char=? #\T ch) #\t) ((char=? #\U ch) #\u) ((char=? #\V ch) #\v) ((char=? #\W ch) #\w) ((char=? #\X ch) #\x) ((char=? #\Y ch) #\y) ((char=? #\Z ch) #\z) (#t ch) ) ) -- Russell O'Connor roconnor@xxxxxxxxxxxx <URL:http://www.undergrad.math.uwaterloo.ca/%7Eroconnor/> ``And truth irreversibly destroys the meaning of its own message'' -- Anindita Dutta, ``The Paradox of Truth, the Truth of Entropy'' DSSSList info and archive: http://www.mulberrytech.com/dsssl/dssslist
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Capitalizing a string?, J-P Theberge | Thread | Re: Capitalizing a string?, Chris Maden |
RE: The letter in the error output, STE MARIE, PAUL | Date | Re: The letter in the error output, Matthias Clasen |
Month |