Меня попросили вывести код, который был задан, в определенном (правильном и идентичном) формате в таблице, используя любые средства (однако я выбрал парсер JSoup, так как я считаю, что это лучшее решение). Я провел некоторое исследование и посмотрел учебники, чтобы понять, как все работает, но застрял.
Я уже пробовал просматривать StackOverflow и нашел похожий вопрос, однако я не могу применить предыдущее решение к моей задаче.
У меня есть таблица с тремя строками и восемью столбцами, в которой каждая отдельная ячейка должна быть отформатирована определенным образом (часть форматирования аналогична, в верхнем регистре для всего текста, в формате даты). Я думал об извлечении каждого из них, а затем попытался использовать регулярное выражение, однако мне удалось только извлечь каждую отдельную строку.
Ниже приведена таблица, которую я пытаюсь разобрать.
код:
ArrayList<String> tableContent = new ArrayList<>();
File input = new File("[..]task_A1.html");
Document doc = Jsoup.parse(input, "UTF-8");
Element table = doc.select("table").get(0);
Elements rows = table.select("tr");
for(int i = 0; i < rows.size(); i++){
Element row = rows.get(i);
Elements cols = row.select("th");
tableContent.add(cols.text());
}
}
<table>
<tr class="primera odd">
<th class="titulo ini" scope="row">2017/10/10</th>
<th class="titulo" scope="col">Demand (b.c)</th>
<th class="titulo" scope="col">Generation(1,234.56)</th>
<th class="titulo" scope="col">Motores diesel</th>
<th class="titulo" scope="col">Turbina de gas</th>
<th class="titulo" scope="col">Fuel + Gas</th>
<th class="titulo" scope="col">Ciclo combinado (3)</th>
<th class="titulo" scope="col">Generación auxiliar (4)</th>
</tr>
<tr class="primera odd">
<th class="titulo ini" scope="row">10102017T0000</th>
<th class="titulo" scope="col">Demand (B.C)</th>
<th class="titulo" scope="col">GENERATION(1234.56)</th>
<th class="titulo" scope="col">Motores diesel</th>
<th class="titulo" scope="col">Turbina%de%gas</th>
<th class="titulo" scope="col">Fuel y Gas(3)</th>
<th class="titulo" scope="col">Ciclo combinado</th>
<th class="titulo" scope="col">Generación auxiliar (4)</th>
</tr>
<tr class="primera odd">
<th class="titulo ini" scope="row">10-10-2017</th>
<th class="titulo" scope="col">Demand (b.c)</th>
<th class="titulo" scope="col">Generation(1234,56)</th>
<th class="titulo" scope="col">Motores diesel</th>
<th class="titulo" scope="col">Turbina de gas</th>
<th class="titulo" scope="col">Fuel y Gas</th>
<th class="titulo" scope="col">Ciclo combinado</th>
<th class="titulo" scope="col">Generación.auxiliar</th>
</tr>
</table>
Таблица:
2017/10/10 Спрос (b.c) Генерация (1 234,56) Двигатель дизель Turbina de gas Топливо + газ Ciclo combinado (3) Generación auxiliar (4)
10102017T0000 Генерация спроса (B.C) (1234.56) Motores дизель Турбина% de% газ Топливо y Газ (3) Ciclo combinado Generación auxiliar (4)
10-10-2017 Спрос (b.c) Генерация (1234,56) Моторес дизель Турбина-де-газ Топливо и Газ Ciclo combinado Generación.auxiliar
Правильный вывод таблицы:
10-10-2017 ПОТРЕБЛЕНИЕ (B.C) ГЕНЕРАЦИЯ (1234,56) МОТОР ДИЗЕЛЬНАЯ ТУРБИНА ДЕ ГАЗ ТОПЛИВО И ГАЗ ЦИКЛО КОМБИНАДО GENERACIóN.AUXILIAR
10-10-2017 ПОРЯДОК ТРЕБОВАНИЯ (B.C) (1234,56) МОТОР ДИЗЕЛЬ ТУРБИНА ДЕ ГАЗ ТОПЛИВО И ГАЗ CICLO COMBINADO GENERACIóN.AUXILIAR
10-10-2017 Генерация спроса (B.C) (1234,56) MOTORES DIESEL TURBINA DE GAS FUEL Y GAS CICLO COMBINADO GENERACIóN.AUXILIAR
Вопрос в том, как извлечь / отформатировать / проанализировать данную таблицу, чтобы все ячейки были одинаково и правильно отформатированы? Можно ли даже выполнить эту задачу с помощью JSoup или есть лучшее решение этой проблемы?
Буду признателен за любые предложения.