- PR -

リソースファイルから一度に複数の値を取得する方法

1
投稿者投稿内容
rikitokame
会議室デビュー日: 2003/02/07
投稿数: 2
投稿日時: 2004-02-17 17:28
こんにちは。
propertiesファイルから、一度に複数の値を取得する方法がないか悩んでおります。

たとえば、propertiesファイルが以下のようになっていたとします。

keyAAA_001=値あ
keyAAA_002=値い
keyAAA_003=値う

「keyAAA」だけが分かっている状態で(_nnnの数は不明)「値あ」「値い」「値う」を
取得できる方法がありましたら教えていただけないでしょうか。
(ワイルドカード指定ができれば最高なのですが、都合良過ぎますかね)

ニシトミ
ベテラン
会議室デビュー日: 2003/04/24
投稿数: 76
お住まい・勤務地: 千葉・東京
投稿日時: 2004-02-17 17:41
ニシトミです

0,1,2と続くなら、ループカウントさせて
取得していけばいいのではないでしょうかね?
Gio
ぬし
会議室デビュー日: 2003/11/28
投稿数: 350
お住まい・勤務地: 都内から横浜の間に少量発生中
投稿日時: 2004-02-17 17:42
java.util.Properties オブジェクトができていれば、あとは Properties#propertyNames() で全プロパティ名を取り出し、String#matches() とか、先頭文字が固定ならば String#startsWith() で比較して値を取り出す方法でできると思います。

String#matches() は J2SDK 1.4 から導入されたものなので、1.3 以前の場合は Jakarta ORO 等を用いてください。
Wata
ぬし
会議室デビュー日: 2003/05/17
投稿数: 279
投稿日時: 2004-02-17 19:44
java.util.TreeMapを使うのも面白いですよ。

コード:
TreeMap tree = new TreeMap(properties);
Collection values = tree.subMap("keyAAA_","keyAAA_" +('9'+1)).values();
for (Iterator iter = values.iterator(); iter.hasNext(); ) {
    String value = (String)iter.next();
}


これで、"keyAAA_"+数字で始まる全てのプロパティ値を辞書順で取得できます。
rikitokame
会議室デビュー日: 2003/02/07
投稿数: 2
投稿日時: 2004-02-18 17:44
返答が遅くなってすみませんでした。
java.util.Propertiesオブジェクトが取得できていなかったため、そこの部分の
作りこみで時間がかかっていましたが、無事解決できました。

概要といたしましては
1.propertiesにリソースファイルの内容を展開
2.Wataさんから教えていただいたコードを参考にさせていただく

以上でやりたかったことが実現できました。
皆様からいただいた書き込みは大変勉強になりました。
ありがとうございました。
cloy
会議室デビュー日: 2004/01/19
投稿数: 16
投稿日時: 2004-02-18 18:54
もう解決されたようですが、Jakartaのcommons-collectionsを使うと、
key1=AAA,BBB,CCC
や、
key2=AAA
key2=BBB
key2=CCC
といった記述のpropertiesファイルを作成して、
Javaプログラム側ではListとして取得することができるようです。

http://jakarta.apache.org/commons/collections/
1

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