プロパティファイルの解釈にクラスorg.apache.commons.configuration.PropertiesConfiguration
を使用しています。二重引用符で囲まれたコンマは、PropertiesConfigurationによって正しく読み込まれません。
PropertiesConfiguration props = new PropertiesConfiguration(path);
String delimiter = props.getString("FIELD_DELIMITER");
シナリオ1つを除いてすべてが問題ありません。 FIELD_DELIMITER
の値は、次に","
FIELD_DELIMTIER=","
として提供される場合、文字列delimiter
の値は"
として得られます。 これ以外の値はすべて期待どおりに動作します。プロパティは次のように与えられた場合、例えば:
FIELD_DELIMITER="a"
(予想通り)[文字列delimiter
の値が"a"
として得られます。
私は問題を解明しようとしました。私は、コンパイラがのコンマ区切り配列と解釈し、最初の文字、つまり"
だけを読み込んで残りを残すことに気付きました。私が読むことを期待しているコンマは決して値として解釈されません。これは、私がの代わりにgetString()
というメソッドを呼び出すと、このようには起こりません。
どうすれば","
を読むことができますか? カンマ区切りの値で他のプロパティを読み取る必要があるため、値を分割するデフォルトの区切り文字は変更できません。形式はprops.getStringArray()
です。
奇妙だ、そのクラスのJavadocは何をするかを説明します:https://commons.apache.org/proper/commons-configuration/apidocs /org/apache/commons/configuration2/PropertiesConfiguration.html。どのようにすることができますか? – Tom
ここで質問をする前に、ドキュメントを読んでいないと思ってはいけません。これが起こったと思わない場合は、自分で試してみてください。 @Tom – Amita
あなたはドキュメントを読んでいると主張していますが、文字列の一部として "、"を使用する方法はまだ分かりませんでした。あるいは、ドキュメントの解決策がうまくいかなかったと言いたいのですか?なぜあなたは質問にそれを追加していないのですか? – Tom