- PR -

ApplicationResources.propertiesの置換文字列{0}{1}等を{%s}に変換する方法

1
投稿者投稿内容
Yasyu
会議室デビュー日: 2004/11/04
投稿数: 9
投稿日時: 2004-11-12 10:45
struts歴11日のYasyuです。

使用している環境は以下の通りです。
 WindowsXPPro SP2
 Tomcat 5.0.29
 JDK 1.4.2_06
 Struts 1.2.4

今回は、メッセージファイル(ApplicationResources.properties)で
設定するメッセージ内の置換文字列(例.「{0}は必須項目です」の{0})について、
別の識別子にできないかなと質問です。
例えば、{0}を{%s}とかにできるのしょうか?

ActionErrorクラスやそのスーパークラスのActionMessageクラスを参照したのですが、
よく分かりませんでした。
シュン
ぬし
会議室デビュー日: 2004/01/06
投稿数: 328
お住まい・勤務地: 東京都
投稿日時: 2004-11-12 11:54
トークンの置換でしたら、JDK1.4以降ならStringクラスで出来ますし、
あるいは正規表現ライブラリ(Jakarta-OROとかJDKのjava.util.regex)をつかっても
出来ますので、そちらを調べてみてください。

一つ疑問なのは、「何故そんなことをしなければならないのか」です。
C言語でのsprintf()関数に該当するような「書式指定の文字列作成」を行うJDK上のAPI
としてjava.text.MessageFormatクラスというものが存在します。
{0}{1}といった記述は、これに対するフォーマット指定位置を示すトークンです。

Javaプロセス内部で文字列を作成するなら、このクラスを使用すべきであって、その場合
そのような変換は必要ないはずですよ。

#よく思うことなのですが、java.textパッケージって、java.lang、java.util、java.io
#と同じくらい習得優先度が高いパッケージだと思うのですが、使い方を知らない人が結構
#多いのは何故でしょう?
1

スキルアップ/キャリアアップ(JOB@IT)