Rubyでは、文字列内の文字の範囲をどのように置き換えることができますか?私は、文字列Rubyの文字の範囲を置き換えるにはどうしたらいいですか?
he####here
私はこれをどのようにするだろうになるために「#」を持つ2から5までを含めたインデックス位置に文字を置換したい場合たとえば、tehの文字列
hellothere
を与えられましたか?
Rubyでは、文字列内の文字の範囲をどのように置き換えることができますか?私は、文字列Rubyの文字の範囲を置き換えるにはどうしたらいいですか?
he####here
私はこれをどのようにするだろうになるために「#」を持つ2から5までを含めたインデックス位置に文字を置換したい場合たとえば、tehの文字列
hellothere
を与えられましたか?
あなたは、文字列の範囲を取得し、最初のインデックス最後のインデックスのために掛けプラス1以下の新しいキャラクターを設定することで、それを置き換えることができます:
def replace_in_string(str, replace, start, finish)
str[start..finish] = replace * (finish + 1 - start)
str
end
p replace_in_string 'hellothere', '#', 2, 5
# "he####here"
は、Stringクラスにメソッドを追加するにはそれほどあなたに1つの引数を与えるだろう:
class String
def replace_in_string(replace, start, finish)
self[start..finish] = replace * (finish + 1 - start)
self
end
end
p 'hellothere'.replace_in_string '#', 2, 5
# "he####here"
メソッドをStringクラスに追加すると、引数が1つ少なくなります。 –
Soudnsは良いアイデアのように...私はStringクラスにどのように正確に追加しますか? –
ほとんど同じように、selfへの呼び出しのstr引数を置き換えます。私は更新しました。 –
常に同じ文字で置き換える必要がありますか? –