在ruby中,如何判断字符串输入是大写还是小写?

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

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

string == string.upcase 

或小写

 string == string.downcase 

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

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

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

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

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

 user_input = gets.chomp if user_input.start_with?(user_input.downcase) user_input.upcase! end