2013-12-19 5 views
7

小文字の文字列を "title case"に変更したいとします。すべての単語の最初の文字が大文字に変換されます。置換式の修飾子を使用してreplaceAll()への1回の呼び出しを使用してこれを行うことはできますか?例えばバックリファレンスの大文字/小文字バージョンの正規表現置換用語はありますか?

str = str.replaceAll("\\b(\\S)", "???$1"); 

"???"次の手紙の場合をフォールドする表現です。

私はこれがテキストパッドのような他のツールであると見ています。\Uは、次の文字を大文字に変換します。

+1

これはJavaでは残念なことに利用できません。ループを実行して一致を1つずつ置き換える必要があります。 [この回答](http://stackoverflow.com/a/2770977/1343161)を参照してください。 – Keppil

+1

Apache Commonsの使用に嫌われていないなら、 'StringUtils.capitalize(str.toLowerCase())'のように 'org.apache.commons.lang3.StringUtils'を使うことができます。ただし、これは標準のJavaライブラリでは実行できません。 –

+0

[WordUtils](http://commons.apache.org/proper/commons-lang/javadocs/api-2.6/org/apache/commons/lang/WordUtils.html)を見てください。 – devnull

答えて

2

replaceAllでは不可能です。しかし、あなたは正規表現と分割を使用することができます:

関連する問題