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.
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.
Vous pouvez échapper à tout dans le fichier de propriétés avec Java Unicode:
\u003d
pour =
\u0020
pour les espacesPar exemple:
foo bar = barefoot
doit être:
foo\u0020bar\u0020=\u0020barefoot
Il en sera de même:
key: "foo bar "
value: " barefoot"
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.