Section 2.12. Accessing and Assigning Substrings


2.11. Controlling Uppercase and Lowercase

Ruby's String class offers a rich set of methods for controlling case. This section offers an overview of these.

The downcase method converts a string to all lowercase. Likewise upcase converts it to all uppercase:

s1 = "Boston Tea Party" s2 = s1.downcase             # "boston tea party" s3 = s2.upcase               # "BOSTON TEA PARTY"


The capitalize method capitalizes the first character of a string while forcing all the remaining characters to lowercase:

s4 = s1.capitalize           # "Boston tea party" s5 = s2.capitalize           # "Boston tea party" s6 = s3.capitalize           # "Boston tea party"


The swapcase method exchanges the case of each letter in a string:

s7 = "THIS IS AN ex-parrot." s8 = s7.swapcase             # "this is an EX-PARROT."


As of Ruby 1.8, there is a casecmp method which acts like the default <=> method but ignores case:

n1 = "abc".casecmp("xyz")    # -1 n2 = "abc".casecmp("XYZ")    # -1 n3 = "ABC".casecmp("xyz")    # -1 n4 = "ABC".casecmp("abc")    # 0 n5 = "xyz".casecmp("abc")    # 1


Each of these has its in-place equivalent (upcase!, downcase!, capitalize!, swapcase!).

There are no built-in methods for detecting case, but this is easy to do with regular expressions, as shown in the following example:

if string =~ /[a-z]/   puts "string contains lowercase characters" end if string =~ /[A-Z]/   puts "string contains uppercase characters" end if string =~ /[A-Z]/ and string =~ /a-z/   puts "string contains mixed case" end if string[0..0] =~ /[A-Z]/   puts "string starts with a capital letter" end


Note that all these methods ignore locale.




The Ruby Way(c) Solutions and Techniques in Ruby Programming
The Ruby Way, Second Edition: Solutions and Techniques in Ruby Programming (2nd Edition)
ISBN: 0672328844
EAN: 2147483647
Year: 2004
Pages: 269
Authors: Hal Fulton

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net