Ruby子串下行
有没有比这个更合适的方法来降级子字符串Ruby子串下行,ruby,string,Ruby,String,有没有比这个更合适的方法来降级子字符串 string[a..b] = string[a..b].downcase 也许是这样的: string[a..b].downcase! 例如: string = "RubyChangedMyMind" string[1..string.length] = string[1..string.length].downcase # this is working but i want to know if there is more short way
string[a..b] = string[a..b].downcase
也许是这样的:
string[a..b].downcase!
例如:
string = "RubyChangedMyMind"
string[1..string.length] = string[1..string.length].downcase
# this is working but i want to know if there is more short way to do this
# (indeces may be different)
# something like string[a..b].downcase!
string = "dsadaDAdasdsadDADADadsadADD"
new_string = my_downcase.call(string,0,11)
#=> "dsadadadasdsadDADADadsadADD"
您可以进行以下操作:
my_downcase = Proc.new { |str,n,m| str.chars.each_with_index.map{ |c,index| (n..m).include?(index) ? c.downcase : c }.join}
并随时调用它:
my_downcase.call(string,range_from,range_to)
例如:
string = "RubyChangedMyMind"
string[1..string.length] = string[1..string.length].downcase
# this is working but i want to know if there is more short way to do this
# (indeces may be different)
# something like string[a..b].downcase!
string = "dsadaDAdasdsadDADADadsadADD"
new_string = my_downcase.call(string,0,11)
#=> "dsadadadasdsadDADADadsadADD"
您可以进行以下操作:
my_downcase = Proc.new { |str,n,m| str.chars.each_with_index.map{ |c,index| (n..m).include?(index) ? c.downcase : c }.join}
并随时调用它:
my_downcase.call(string,range_from,range_to)
例如:
string = "RubyChangedMyMind"
string[1..string.length] = string[1..string.length].downcase
# this is working but i want to know if there is more short way to do this
# (indeces may be different)
# something like string[a..b].downcase!
string = "dsadaDAdasdsadDADADadsadADD"
new_string = my_downcase.call(string,0,11)
#=> "dsadadadasdsadDADADadsadADD"
你想完成什么还不清楚。您能否显示一个示例字符串以及希望得到的结果?这似乎在做预期的事情。你能举例说明你想要什么吗?始终返回新字符串(或
nil
)。因此,更改该字符串不会影响原始字符串。根据您的用例,您可以使用sub代码>和正则表达式。@Stefan,我可能没有领会你的意思<代码>字符串#[]
不会更改或修改字符串,但会更改或修改字符串。在string[1..string.length]=string[1..string.length].downcase
之后,string\35;=>“rubychangedymind”
@CarySwoveland我指的是string[a..b]。downcase代码>。不清楚您想要完成什么。您能否显示一个示例字符串以及希望得到的结果?这似乎在做预期的事情。你能举例说明你想要什么吗?始终返回新字符串(或nil
)。因此,更改该字符串不会影响原始字符串。根据您的用例,您可以使用sub代码>和正则表达式。@Stefan,我可能没有领会你的意思<代码>字符串#[]
不会更改或修改字符串,但会更改或修改字符串。在string[1..string.length]=string[1..string.length].downcase
之后,string\35;=>“rubychangedymind”
@CarySwoveland我指的是string[a..b]。downcase代码>。谢谢你的好主意!谢谢你的好主意!