Ruby 将句子大写
是否有一种方法(可能在Rails的某些库中)或一种简单的方法可以在不影响字符串其余部分的大写/小写状态的情况下大写字符串的第一个字母?我想用它来大写错误消息。我期待这样的事情:Ruby 将句子大写,ruby,string,activesupport,Ruby,String,Activesupport,是否有一种方法(可能在Rails的某些库中)或一种简单的方法可以在不影响字符串其余部分的大写/小写状态的情况下大写字符串的第一个字母?我想用它来大写错误消息。我期待这样的事情: "hello iPad" #=> "Hello iPad" 试试这个 "hello iPad".camelize 试试这个 "hello iPad".camelize Ruby中有一个大写方法,但它会将字符串的其余部分降格。否则,您可以编写自己的: class String def capitalize_
"hello iPad" #=> "Hello iPad"
试试这个
"hello iPad".camelize
试试这个
"hello iPad".camelize
Ruby中有一个大写方法,但它会将字符串的其余部分降格。否则,您可以编写自己的:
class String
def capitalize_first
(slice(0) || '').upcase + (slice(1..-1) || '')
end
def capitalize_first!
replace(capitalize_first)
end
end
编辑:首先添加了
大写字母代码>变体。Ruby中有一个大写方法,但它会将字符串的其余部分降格。否则,您可以编写自己的:
class String
def capitalize_first
(slice(0) || '').upcase + (slice(1..-1) || '')
end
def capitalize_first!
replace(capitalize_first)
end
end
编辑:首先添加了大写字母代码>变体。相当笨拙,但它可以工作:
str = "hello IiPad"
str[0] = str[0].upcase #or .capitalize
虽然有点笨拙,但它确实有效:
str = "hello IiPad"
str[0] = str[0].upcase #or .capitalize
多亏了其他的答案,我意识到了一些我需要注意的问题,而且没有内在的方式。我研究了Vitaly Zemlyansky暗示的积极支持Rails的camelize
的源代码,这给了我一个提示:那就是使用正则表达式。我决定用这个:
sub(/./){$&.upcase}
多亏了其他的答案,我意识到了一些我需要注意的问题,而且没有内在的方式。我研究了Vitaly Zemlyansky暗示的积极支持Rails的camelize
的源代码,这给了我一个提示:那就是使用正则表达式。我决定用这个:
sub(/./){$&.upcase}
这真的会使这根绳子骆驼化。如果提供的字符串包含一些\u UnderCores
,该怎么办?它将被骆驼化为someunderline
。这是一个很好的技巧,但这将把“hello someStuff”变成“hello someStuff”。如果你没有任何下划线,那没关系,但如果没有下划线,可能会产生一些令人惊讶的结果(通常不欢迎惊喜),谢谢你的想法。虽然正如Remus和Jean所指出的,它有一个问题,但是查看camelize
的源代码给了我一个提示。这将真正地camelize字符串。如果提供的字符串包含一些\u UnderCores
,该怎么办?它将被骆驼化为someunderline
。这是一个很好的技巧,但这将把“hello someStuff”变成“hello someStuff”。如果你没有任何下划线,那没关系,但如果没有下划线,可能会产生一些令人惊讶的结果(通常不欢迎惊喜),谢谢你的想法。尽管正如Remus和Jean所指出的那样,它有一个问题,但查看camelize
的源代码给了我一个提示。capitalize
来自ruby,而不是rails。我认为你的答案是最好的,但太冗长了。capitalize
来自ruby,而不是rails。我认为你的答案是最好的,但是它太冗长了。您必须检查是否有空字符串,使用str=“”
运行代码片段将崩溃。谢谢。我现在意识到我必须做一些事情来分别处理第一个字符。你必须检查是否有空字符串,使用str=”“
运行代码片段将崩溃。谢谢。我现在意识到我必须做一些事情,分别对待第一个角色。