5

我正在尝试编写一个程序,当输入单个字母时,如果它是大写的,则将其保留为大写并返回,如果是小写,则转换为大写。我该如何写才能判断字符串最初是大写还是小写?

4

3 回答 3

10

只需将字符串转换为大写并与原始字符串进行比较

string == string.upcase

或小写

string == string.downcase

 

编辑:如评论中所述,上述解决方案仅适用于英文字母。如果您需要国际解决方案,请改用

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

它使用正则表达式扫描字符串中的小写字母,并否定结果以判断字符串是否全部为大写。

于 2012-11-25T02:19:36.877 回答
2

听起来您只需要转换为大写,根本不需要检查 if 小写,因为将 #upcase 应用于已经是大写的东西不会影响它。

于 2012-11-25T11:40:16.833 回答
1

对于单个字符串,您可以使用start_with? 方法也是。

user_input = gets.chomp

if user_input.start_with?(user_input.downcase)
    user_input.upcase!
end
于 2015-05-27T02:45:27.797 回答