0
文字列が与えられ、文字、空白およびハイフンを含めることができます。例:空白またはハイフンで区切られた各文字列のメソッドを実行します。
str1 = "abcdef ghi-jkl"
私はstr1
に各単語に方法method
を実行する(ここでは言葉は、文字のシーケンスがあるそれは、空白および/またはハイフンで区切られています。)。 str1
に例えば
:method("abcdef")
、method("ghi")
、method("jkl")
"abcdef* ghi*-jkl*"
(*
各弦法の結果である)が返されます。 method ("abcdef ghi-jkl")
は(method("abcdef")
method("ghi")
method("jkl")
)と等しくありません。空白とハイフンは、元の場所に戻されます。
どうすればいいですか?
私の勘違いは、ある種の正規表現方法と組み合わせたメソッドを使用することです。
これは非常にクールです。私はあなたが 'gsub'にブロックを供給できるかどうか分かりませんでした。ところで、ラムダを使うと、表記法はもっと簡単になります: 'the_lambda = - (s){" [#{s}] "}; str1.gsub(/ [^ - ] + /、&thelambda) ' –
@KeithBennett:私は' the_method'がすでにOPで記述されているメソッドとして存在すると仮定しました。そうでない場合は、ブロックを直接使用できるときにラムダを使用するのは意味がありません。 – Amadan
真。私はエーテルに一般的な示唆として言わなければならないと思う。 ;) –