web-dev-qa-db-fra.com

La clé d'une propriété Java Java peut-elle inclure un caractère vide?

Nous obtenons des propriétés (que nous ne pouvons pas influencer) d'une base de données et voulons y accéder par un mappage clé/valeur. Nous sommes confrontés au problème que l'une des clés de propriété comprend un caractère vide.

foo bar = barefoot

Ceci est - correctement - interprété comme suit

key: foo
value: bar = barefoot

Existe-t-il un moyen d'inclure le blanc dans la clé afin qu'il ne soit pas interprété comme le délimiteur? Je suppose que ce comportement est comme prévu, mais j'ai pensé que je pourrais essayer ici.

35
bl4ckb0l7

Comme il semble que le délimiteur devrait être =, Pas l'espace. Par conséquent - keyValuePair.split("=") devrait faire l'affaire.

Si vous le chargez à partir d'un fichier Java .properties, Vous pouvez étendre Java.util.Properties Et remplacer cette méthode

public synchronized void load(InputStream inStream) throws IOException

afin qu'il analyse correctement les propriétés.

10
Bozho

Vous pouvez échapper à tout dans le fichier de propriétés avec Java Unicode:

  • \u003d pour =
  • \u0020 pour les espaces

Par exemple:

foo bar = barefoot

doit être:

foo\u0020bar\u0020=\u0020barefoot

Il en sera de même:

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

Peut-être que vous pouvez échapper aux espaces blancs: foo\ bar = barefoot

Edit: Oups, je n'ai pas vu que vous ne pouvez pas changer les propriétés.

15
Petar Minchev