We are getting properties (that we can not influence) out of a database and want to access them by a key/value mapping. We are facing the problem that one of the property keys includes a blank character.
foo bar = barefoot
This is - correctly - interpreted as follows
key: foo
value: bar = barefoot
Is there a way to include the blank in the key so that it's not interpreted as the delimiter? I guess this behaviour is just like intended, but I thought I could give it a try here.
As it seems the delimiter should be
=
, not space. Hence -keyValuePair.split("=")
should do.If you are loading this from a java
.properties
file, then you can extendjava.util.Properties
and override this methodso that it parses the properties correctly.
I assume by "properties", you mean a Java property file (as written/read by
java.util.Properties
).Then, as you write yourself,
must indeed be interpreted as
There's no way to configure this using the built-in
Properties
class. You must either manipulate your input (escape the whitespace, change it to _ and back...), or write your own parser. Writing your own parser is probably better, as obviously your input isn't really a Java properties file to begin with :-).You can escape every thing in properties file with Java Unicode:
\u003d
for=
\u0020
for whitespaceFor example:
must be:
So will be:
Maybe you can escape the whitespaces:
foo\ bar = barefoot
Edit: Oops, I did not see that you can't change the properties.