In ruby how do you tell if a string input is in uppercase or lowercase?

后端 未结 3 1458
后悔当初
后悔当初 2021-01-13 06:18

I am trying to write a program that when a single letter is inputted, if it\'s in uppercase, leave it in uppercase and return it, and if it\'s in lowercase, then convert to

相关标签:
3条回答
  • 2021-01-13 06:40

    Sounds like you just need to convert to uppercase and don't need to bother with the if lowercase check at all, since applying #upcase to something that is already uppercase won't effect it.

    0 讨论(0)
  • 2021-01-13 06:59

    For a single string you can use start_with? method as well.

    user_input = gets.chomp
    
    if user_input.start_with?(user_input.downcase)
        user_input.upcase!
    end
    
    0 讨论(0)
  • 2021-01-13 07:05

    Just convert the string to upper case and compare it with the original

    string == string.upcase
    

    or for lowercase

    string == string.downcase
    

     

    Edit: as mentioned in the comments the solution above works with English letters only. If you need an international solution instead use

    def upcase?(string)
        !string[/[[:lower:]]/]
    end
    

    which uses a regular expressions to scan the string for lowercase letters and the negates the finding to tell whether the string is all uppercase.

    0 讨论(0)
提交回复
热议问题