【问题标题】:In ruby how do you tell if a string input is in uppercase or lowercase?在 ruby​​ 中,如何判断字符串输入是大写还是小写?
【发布时间】:2012-11-12 22:00:47
【问题描述】:

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

【问题讨论】:

标签: ruby uppercase lowercase


【解决方案1】:

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

string == string.upcase

或小写

string == string.downcase

 

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

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

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

【讨论】:

  • upcasedowncase 有一个重要的警告:它们只适用于 ASCII。
  • 真的吗? #upcase 和 #downcase 仅适用于 ASCII 吗?考虑到 Ruby 新的“编码”世界观,这对我来说听起来像是一个错误。你有sn-p的代码来证明这一点吗?
【解决方案2】:

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

user_input = gets.chomp

if user_input.start_with?(user_input.downcase)
    user_input.upcase!
end

【讨论】:

    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-03
      • 2020-10-21
      • 1970-01-01
      • 2011-09-15
      • 2020-04-05
      • 2018-06-17
      • 2010-11-04
      • 2019-08-04
      相关资源
      最近更新 更多