[解決済み] Rubyで大文字の文字列をタイトルケースに変換する。
2022-02-28 04:07:58
質問
Rubyですべて大文字の文字列を小文字に変換したいのですが、各単語の最初の文字が大文字になるようにしてください。例
convert "MY STRING HERE" to "My String Here".
.downcaseメソッドを使用できることは知っていますが、それだとすべて小文字になってしまいます("my string here")。ファイル内のすべての行をスキャンしてこの変更を行うのですが、これを実現するためにrubyで使用できる正規表現はあるのでしょうか?
ありがとうございます。
解決方法は?
自分なりの方法を考えているうちに(参考までに下記に記載)、かなり厄介なコーナーケースがあることに気がつきました。で提供されている方法を使うのがベターです。 ファセット Rubyで最も素晴らしいライブラリです。
require 'facets/string/titlecase'
class String
def titleize
split(/(\W)/).map(&:capitalize).join
end
end
require 'test/unit'
class TestStringTitlecaseAndTitleize < Test::Unit::TestCase
def setup
@str = "i just saw \"twilight: new moon\", and man! it's crap."
@res = "I Just Saw \"Twilight: New Moon\", And Man! It's Crap."
end
def test_that_facets_string_titlecase_works
assert_equal @res, @str.titlecase
end
def test_that_my_own_broken_string_titleize_works
assert_equal @res, @str.titleize # FAIL
end
end
より一般的なライティングスタイルのガイドラインに近いものが必要な場合 (つまり "and" のような単語を大文字にしない)、GitHub にいくつかの "titleize" gems が存在します。
関連
-
[解決済み] Ruby で配列の順序を逆転させる
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] C#で文字列のエンコーディングを手動で指定せずに、一貫性のあるバイト表現を得るには?
-
[解決済み] Bashで文字列を小文字に変換する方法は?
-
[解決済み] Pythonで整数から文字列に変換する
-
[解決済み] JavaScript の文字列をすべて小文字に変換する
-
[解決済み] 大文字・小文字を区別しない文字列比較を行うには?
-
[解決済み] Rubyで文字列を小文字・大文字に変換する方法
-
[解決済み】大文字・小文字を区別しない「Contains(string)
-
[解決済み】大文字と数字を含むランダムな文字列の生成
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Ruby: 特定のバージョンのruby gemをインストールする方法は?
-
[解決済み] Rubyのローカル変数が未定義である
-
[解決済み] Ruby プログラムに一定時間待つように指示する
-
[解決済み] Rubyの配列から文字列への変換
-
[解決済み] 配列に何かを追加しようとしたときに、nil から整数への暗黙の変換が行われない。
-
[解決済み] Rubyでfailキーワードは何をするのですか?
-
[解決済み] プロキシ(ISA-NTLM)の後ろからRuby Gemsをアップデートする方法
-
ERRORの問題を解決します。rails のインストール時に gem ネイティブ拡張のビルドに失敗しました。
-
[解決済み] Rubyでガウス(正規分布)乱数を生成するコード
-
[解決済み】rubyでキャメルケースからアンダースコアケースに変換する方法