Case sensitive strings

Discussion in 'Ruby' started by Stuart Clarke, May 21, 2009.

  1. Hi all,

    This is one of those annoying ones, but simple to solve I would imagine.

    I have a word list, where each entry is on a single line and in
    lowercase. I process this text file reading each word

    words.each |word|
    etc etc

    I then have a conditional statement to check if a value matches word eg

    if foo == word
    puts foo
    end

    This all works well, but I am stuck on how to deal with upper and
    lowercase. I want to check if foo is equal to word in lowercase and in
    uppercase.

    What is the best way to do this?

    Many thanks

    Stuart
     
    Stuart Clarke, May 21, 2009
    #1
    1. Advertisements

  2. Stuart Clarke

    badboy Guest

    you can use regexes and the "i"-flag:
    foo =~ /^yourword$/i
    (or better /\Ayourword\Z/i if you're not sure if there are newlines in it)
    or lowercase foo:
    foo.downcase == "yourword"

    ;)
     
    badboy, May 21, 2009
    #2
    1. Advertisements

  3. Thanks for a quick reply. I had tried the first one but it didn't work.

    Did not think of the second one, silly me.

    Thanks a lot
     
    Stuart Clarke, May 21, 2009
    #3
  4. Or just:

    yourword.casecmp(foo).zero?

    See String#casecmp for more.

    -Rob

    Rob Biedenharn http://agileconsultingllc.com
     
    Rob Biedenharn, May 21, 2009
    #4
    1. Advertisements

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.