文字列の1文字目を大文字にするには (capitalize)

文字列の1文字目を大文字にする方法。

Scala

String から暗黙の型変換される scala.collection.immutable.StringOpscapitalize というメソッドがあり、 1文字目を大文字に変換できる。ただし、Unicodeのタイトル文字ではなく単に大文字にしているので、Unicodeとして期待する動作とは違う。

val str = “\u01F3abc”; println(str.capitalize); // => DZabc

“dzabc” の1文字目(U+01F3)を大文字にした文字列は “Dzabc” (U+01F2)になることが本当は期待される。

詳しくはUnicodeの大文字と小文字のまとめ参照。

Signature:

Groovy

GroovyではStringクラスにcapitalizeというメソッドが追加されており、 1文字目を大文字に変換できる。ただし、Unicodeのタイトル文字ではなく単に大文字にしているので、Unicodeとして期待する動作とは違う。

def str = "\u01F3abc"
println str.capitalize()
// => DZabc

“dzabc” の1文字目(U+01F3)を大文字にした文字列は “Dzabc” (U+01F2)になることが本当は期待される。

詳しくはUnicodeの大文字と小文字のまとめ参照。

java.lang.String#capitalize | Groovy JDK API Documentation
http://beta.groovy-lang.org/docs/latest/html/groovy-jdk/java/lang/String.html#capitalize()

Ruby

capitalizeまたはcapitalize!というメソッドでできる。

capitalizeは変換した新しい文字列を返し、capitalize!はその文字列自身を破壊的に変更する。

p "heLLO".capitalize
# => "Hello"

p "\u01F3s\u00FAsz".capitalize
# => "dzsúsz"

String#capitalize メソッド, String#capitalize! メソッド | Ruby 2.1 リファレンスマニュアル
http://docs.ruby-lang.org/ja/2.1.0/class/String.html#I_CAPITALIZE

このサイトは筆者(hydrocul)の個人メモの集合です。すべてのページは永遠に未完成です。