データベースからプロパティを取得し(影響を与えることはできません)、キー/値のマッピングによってプロパティにアクセスしたいと考えています。プロパティキーの1つに空白文字が含まれるという問題に直面しています。
foo bar = barefoot
これは-正しく-次のように解釈されます
key: foo
value: bar = barefoot
キーに空白を含めて、区切り文字として解釈されないようにする方法はありますか?この振る舞いは意図したとおりであると思いますが、ここで試してみることができると思いました。
区切り文字はスペースではなく_=
_である必要があるようです。したがって-keyValuePair.split("=")
が行う必要があります。
これをJava _.properties
_ファイルからロードする場合、_Java.util.Properties
_を拡張してこのメソッドをオーバーライドできます。
_public synchronized void load(InputStream inStream) throws IOException
_
そのため、プロパティを正しく解析します。
Java Unicode:
\u003d
にとって =
\u0020
空白用例えば:
foo bar = barefoot
でなければなりません:
foo\u0020bar\u0020=\u0020barefoot
そうなります:
key: "foo bar "
value: " barefoot"
たぶん、空白をエスケープできます:foo\ bar = barefoot
編集:おっと、プロパティを変更できないことはわかりませんでした。
「プロパティ」とは、Javaプロパティファイル(Java.util.Properties
)。
次に、あなたが自分自身を書くとき、
foo bar = barefoot
実際に解釈する必要があります
key: foo
value: bar = barefoot
組み込みのProperties
クラスを使用してこれを構成する方法はありません。入力を操作する(空白をエスケープし、_に変更してから戻る...)か、独自のパーサーを記述する必要があります。明らかにあなたの入力は実際にはJavaで始まるプロパティファイル:-)ではないので、独自のパーサーを書くほうがおそらく良いでしょう。