Может ключ в свойстве Java включать символ пробела?

Мы получаем свойства (что мы не можем влиять) из базы данных, и хотят получить доступ к ним ключом/построением карты ценности. Мы сталкиваемся с проблемой, что один из ключей свойства включает символ пробела.

foo bar = barefoot

Это - правильно - интерпретировано следующим образом

key: foo
value: bar = barefoot

Существует ли способ включать пробел в ключ так, чтобы он не был интерпретирован как разделитель? Я предполагаю, что это поведение точно так же, как предназначается, но я думал, что мог дать ему попытку здесь.

37
задан Jonathan Leffler 8 September 2013 в 18:10
поделиться

3 ответа

Я предполагаю, что «свойства», вы имеете в виду файл свойств Java (как написано / чтение по Java.util.properties ).

Тогда, как вы пишете себя,

foo bar = barefoot

действительно должен интерпретировать как

key: foo
value: bar = barefoot

Нет способа настроить это, используя встроенные класс . Вы должны либо манипулировать вашим входом (избежать пробела, измените его на _ и обратно ...), или напишите свой собственный парсер. Написание своего собственного парсера, вероятно, лучше, как, очевидно, ваш вклад не на самом деле файл свойств Java для начала :-).

-121--1266553-

Как кажется, разделитель должен быть = , не пространство. Следовательно - keyvaluepair.split ("=") должен сделать.

Если вы загружаете это из Java .Properties файл, то вы можете расширить java.util.properties и переопределите этот метод

public synchronized void load(InputStream inStream) throws IOException

, чтобы он правильно разобрал свойства. Отказ

10
ответ дан 27 November 2019 в 03:59
поделиться

Может быть, вы можете избежать пробелов: foo \ bar = barefoot

Редактировать: упс, я не видел, что вы не можете изменить свойства.

15
ответ дан 27 November 2019 в 03:59
поделиться

Я предполагаю, что «свойства», вы имеете в виду файл свойств Java (как написано / чтение java.util.properties ).

Тогда, как вы пишете себя,

foo bar = barefoot

действительно должен интерпретировать как

key: foo
value: bar = barefoot

Нет способа настроить это, используя встроенные свойства класса . Вы должны либо манипулировать вашим входом (избежать пробела, измените его на _ и обратно ...), или напишите свой собственный парсер. Написание своего собственного парсера, вероятно, лучше, как, очевидно, ваш вклад не на самом деле файл свойств Java для начала :-).

4
ответ дан 27 November 2019 в 03:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: