[解決済み】Rubyでハッシュのすべての値を変更する
2022-04-13 23:05:38
質問
ハッシュのすべての値を変更し、値の前後に'%'を追加したい。
{ :a=>'a' , :b=>'b' }
は、次のように変更する必要があります。
{ :a=>'%a%' , :b=>'%b%' }
どうすればいいのでしょうか?
どのように解決するのですか?
実際の文字列自体をその場で変異させたい場合(同じ文字列オブジェクトへの他の参照に影響を与える可能性があり、望ましいことですが)。
# Two ways to achieve the same result (any Ruby version)
my_hash.each{ |_,str| str.gsub! /^|$/, '%' }
my_hash.each{ |_,str| str.replace "%#{str}%" }
ハッシュはその場で変更したいが、文字列には影響を与えたくない場合(新しい文字列を取得させたい)。
# Two ways to achieve the same result (any Ruby version)
my_hash.each{ |key,str| my_hash[key] = "%#{str}%" }
my_hash.inject(my_hash){ |h,(k,str)| h[k]="%#{str}%"; h }
新しいハッシュが欲しい場合。
# Ruby 1.8.6+
new_hash = Hash[*my_hash.map{|k,str| [k,"%#{str}%"] }.flatten]
# Ruby 1.8.7+
new_hash = Hash[my_hash.map{|k,str| [k,"%#{str}%"] } ]
関連
-
[解決済み] Rubyでファイルを移動するにはどうしたらいいですか?
-
ERRORの問題を解決します。rails のインストール時に gem ネイティブ拡張のビルドに失敗しました。
-
[解決済み] Rubyのswitch文の書き方
-
[解決済み] Rubyで配列に値が存在するかどうかを確認する方法
-
[解決済み] Rubyのattr_accessorとは何ですか?
-
[解決済み] gemのインストールで --no-ri --no-rdoc をデフォルトにするには?
-
[解決済み] 特定のキーがハッシュ内に存在するかどうかを確認する方法は?
-
[解決済み] Ruby/RailsでHashからキーを削除して残りのHashを取得する方法は?
-
[解決済み] node.jsのハッシュ文字列?
-
[解決済み】PHPパスワードのハッシュとソルトの安全性について
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] -bashです。/Users/myname/.bash_profile: パーミッションが拒否されました
-
[解決済み] Rubyの除算はなぜ10進数ではなく整数を返すのですか?
-
[解決済み] Ruby の .reject! と .delete_if の比較
-
[解決済み] Ruby on railsで改行せずにコンソールに "puts "を使用するにはどうすればよいですか?
-
[解決済み] Rubyで配列を降順にソートする方法
-
[解決済み] rubyでディレクトリからすべてのファイルを要求する最良の方法?
-
[解決済み] Ruby で Fixnum から String への暗黙の変換ができない (TypeError)
-
[解決済み] ファイルの存在を確認する方法 [重複]について
-
[解決済み] Rubyでfailキーワードは何をするのですか?
-
[解決済み] プロキシ(ISA-NTLM)の後ろからRuby Gemsをアップデートする方法