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。谢谢你的好主意!谢谢你的好主意!