[解決済み] Ruby で文字列の最初の文字を大文字にする方法
2022-05-10 23:45:03
質問
その
upcase
メソッドは文字列全体を大文字にしますが、私は最初の文字だけを大文字にする必要があります。
また、ドイツ語やロシア語など、一般的な言語にも対応する必要があります。
どうすればいいのでしょうか?
どのように解決するのですか?
使用するRubyのバージョンに依存します。
Ruby 2.4以降。
というように、動作します。 ルビー v2.4.0 は、Unicodeのケースマッピングをサポートしています。
"мария".capitalize #=> Мария
Ruby 2.3以下。
"maria".capitalize #=> "Maria"
"мария".capitalize #=> мария
問題なのは、これが思い通りに動いてくれないことです。
мария
ではなく
Мария
.
Railsを使用している場合は、簡単な回避策があります。
"мария".mb_chars.capitalize.to_s # requires ActiveSupport::Multibyte
そうでない場合は ユニコード gem を使って、このように使用します。
require 'unicode'
Unicode::capitalize("мария") #=> Мария
Ruby 1.8です。
必ず コーディング のマジックコメントです。
#!/usr/bin/env ruby
puts "мария".capitalize
与える
invalid multibyte char (US-ASCII)
, 一方
#!/usr/bin/env ruby
#coding: utf-8
puts "мария".capitalize
はエラーなく動作しますが、実際の大文字表記については "Ruby 2.3 and lower" のセクションも参照してください。
関連
-
[解決済み】Ruby: 特定のバージョンのruby gemをインストールする方法は?
-
[解決済み] Rubyでランダムな文字列を生成する方法
-
[解決済み] Rubyのswitch文の書き方
-
[解決済み] Rubyで配列に値が存在するかどうかを確認する方法
-
[解決済み] Rubyからシェルコマンドを呼び出す方法
-
[解決済み] Rubyでnilとemptyとblankを理解する方法
-
[解決済み] Rubyで文字列を小文字・大文字に変換する方法
-
[解決済み] Ruby on Railsで現在の絶対URLを取得するにはどうすればよいですか?
-
[解決済み] Rubyのクラス名を取得する方法を教えてください。
-
[解決済み] ルビー、すべての単語の最初の文字を大文字にする
最新
-
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で新しい文字列を作成せずに文字列をトリミングする標準的な方法は何ですか?
-
[解決済み】そのようなファイルやディレクトリはありません @ rb_sysopen ruby
-
[解決済み】Ruby:kind_of? vs. instance_of? vs. is_a?
-
[解決済み] nil:NilClass のための未定義のメソッド `+' (NoMethodError)
-
[解決済み] git, Heroku: pre-receive フックの減少
-
[解決済み] Ruby - 文字列を日付に変換する
-
[解決済み] Rubyで配列を降順にソートする方法
-
[解決済み] rubyでto_yamlに書式オプションを指定することはできますか?
-
[解決済み] Ruby on Railsでホスト名やIPを取得する
-
[解決済み] プロキシ(ISA-NTLM)の後ろからRuby Gemsをアップデートする方法