web-dev-qa-db-ja.com

Javaプロパティのキーに空白文字を含めることはできますか?

データベースからプロパティを取得し(影響を与えることはできません)、キー/値のマッピングによってプロパティにアクセスしたいと考えています。プロパティキーの1つに空白文字が含まれるという問題に直面しています。

foo bar = barefoot

これは-正しく-次のように解釈されます

key: foo
value: bar = barefoot

キーに空白を含めて、区切り文字として解釈されないようにする方法はありますか?この振る舞いは意図したとおりであると思いますが、ここで試してみることができると思いました。

35
bl4ckb0l7

区切り文字はスペースではなく_=_である必要があるようです。したがって-keyValuePair.split("=")が行う必要があります。

これをJava _.properties_ファイルからロードする場合、_Java.util.Properties_を拡張してこのメ​​ソッドをオーバーライドできます。

_public synchronized void load(InputStream inStream) throws IOException
_

そのため、プロパティを正しく解析します。

10
Bozho

Java Unicode:

  • \u003d にとって =
  • \u0020空白用

例えば:

foo bar = barefoot

でなければなりません:

foo\u0020bar\u0020=\u0020barefoot

そうなります:

key: "foo bar "
value: " barefoot"
142

たぶん、空白をエスケープできます:foo\ bar = barefoot

編集:おっと、プロパティを変更できないことはわかりませんでした。

15
Petar Minchev

「プロパティ」とは、Javaプロパティファイル(Java.util.Properties)。

次に、あなたが自分自身を書くとき、

foo bar = barefoot

実際に解釈する必要があります

key: foo
value: bar = barefoot

組み込みのPropertiesクラスを使用してこれを構成する方法はありません。入力を操作する(空白をエスケープし、_に変更してから戻る...)か、独自のパーサーを記述する必要があります。明らかにあなたの入力は実際にはJavaで始まるプロパティファイル:-)ではないので、独自のパーサーを書くほうがおそらく良いでしょう。

4
sleske