3

これは、以前の質問 (ここにあります)のフォローアップです。これまでのプロパティ ファイルは、int や String などの単純なキーと値のペアで構成されています。これを使用して、より高度な構造を配置したいと思います。より具体的には、 A が定義したクラスである Map<A, Integer> が必要です。たとえば、次のようになります。

foo=bar,5;baz,10

これは可能ですか?もしそうなら、どのようにファイルをフォーマットし、マップを解析する必要がありますか?

これを解決するためのより良い方法はありますか?

4

4 に答える 4

3

split() と trim() の使用を検討しましたか。

下記を参照してください:

ResourceBundle rb = ResourceBundle.getBundle(Prop.class.getName());

    String fooValue = rb.getString("foo");
    String[] firstSplit = fooValue.split(";");
    for(String first : firstSplit){
        String firstTrim = first.trim();

        String[] intAndString = firstTrim.split(",");
        if(intAndString.length == 2){
            String intString = intAndString[0].trim();
            String stringVal = intAndString[1].trim();

            //TODO add entries here or return value.

        }
    }
于 2009-09-04T17:00:29.700 に答える
1

この例で行う最も簡単な方法は、別のプロパティ ファイルを作成することです。次に、次のような名前と値のペアがあります

バー=5 バズ=10

これが大きなテーブルである場合、より一般的なものと混ぜたくありません。3組のテーブルなら別ですが。

プロパティ ファイルは、複雑なデータ構造に最適なソリューションです。これらは、名前と値のペアを対象としています。それを超える場合は、確かに、構文を発明することで機能させることができますが、わざわざする必要はありません。非常に複雑な構文の場合は、XML が可能です。または、リレーショナル データベースに属している可能性があります。またはCSVファイル。要件に一致するツールを選択します。最初にツールを決定してから、それを適合させようとするのではありません。

于 2009-09-04T17:47:27.280 に答える