Сопоставление и замена строк Java, стиль шаблона документаJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Сопоставление и замена строк Java, стиль шаблона документа

Сообщение Anonymous »

У меня есть приложение, которое включает в себя электронную таблицу или прямой ввод, в котором я сопоставляю столбцы с текстовыми токенами и использую эти токены и то, что они представляют, для заполнения строк в нескольких таблицах SQL. Что-то вроде шаблонов документов.
Чтобы лучше объяснить, что я имею в виду, давайте представим, что у меня есть файл csv с двумя столбцами «Имя» и «Фамилия», и будет сопоставьте их с токенами «++fname++» и «++lname++», и приложение сопоставит токен «++domain++» с «example.com». Вот пример CSV -

Код: Выделить всё

"First Name","Last Name
John,Doe
Jane,Smith
Итак, я бы использовал базу данных HashMap или SQL или что-то подобное для хранения значений, чтобы в итоге первая строка в памяти выглядела вот так.

Код: Выделить всё

"++fname++" = "John"
"++fnamei++" = "J"
"++lname++" = "Smith"
"++lnamei++" = "S"
"++domain++" = "example.com"
Например, таблица SQl будет содержать столбцы fname, lname, name, email. Подготовленное заявление будет выглядеть так: -

Код: Выделить всё

String col[] = new String[4]();
col[0] = "++fname++";
col[1] = "++lname++";
col[2] = "++fname++ ++lname++";
col[3] = "++fnamei++.++lname++@++domain++";
for (int i = 0; i < col.length; i++ ) {
p.setString(i + 1,TokenEval(col[i]));
}
Затем TokenEval() вставит нужную информацию, чтобы она была вставлена ​​в таблицу -

Код: Выделить всё

+++++++++++++++++++++++++++++++++++++++++++++
| John | Doe | John Doe | J.Doe@example.com |
Первое, что следует упомянуть, это то, что я мог бы создавать классы для каждой таблицы и использовать статические переменные, но есть около 50 таблиц, которые мне, возможно, придется время от времени обновлять, и входные данные также переменная. К тому времени, когда я закончу, жетонов может быть много: 20, 30 или даже 50+. Цель состоит в том, чтобы сделать приложение гибким к изменениям во входных данных и таблицах SQL, где вместо статических классов можно получать столбцы с сервера SQL, а затем сопоставлять их со значениями токенов, которые сопоставляются с данными, поэтому, если таблица изменится или входящие изменения я могу отобразить в программном обеспечении, вместо того чтобы создавать новые версии. Кроме того, многие столбцы в таблицах базы данных содержат либо повторяющуюся информацию, либо значения по умолчанию, либо общесистемные значения, которые я могу определить или изменить в режиме реального времени.
Мои вопросы: во-первых, что будет лучше или чище: использование HashMap для сопоставления токенов со значениями и использование .get() для получения сопоставленного значения или реализация чего-то вроде таблицы SQL в памяти H2?
Во-вторых, делаем замену строк. Я знаю, что могу легко сопоставить и создать отдельные токены для fname и lname, но когда в строке или других символах есть несколько токенов, например для имени и электронной почты, я не уверен, какой подход будет лучшим. Я мог бы выполнить последовательность символов по строке и извлечь используемые токены, получить их и перестроить строку или, возможно, использовать indexOf() для поиска токенов и использовать .replace(), как только я узнаю, что они собой представляют. При таком большом количестве токенов выполнение .replace() для каждого из них для каждого поля заняло бы много времени. Или я могу передать строку на SQL-сервер H2, и он отправит обратно совпадения, а я выполню замену из результата? Или для этого приложения уже существует библиотека для сопоставления шаблонов/токенов в Java?
Спасибо!

Подробнее здесь: https://stackoverflow.com/questions/785 ... late-style
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»