Самый простой способ, вероятно, состоит в том, чтобы просто хранить List<String>
для каждого значения с циклами что-то , например:
private static final String ACTION_TAKEN_PREFIX = "Action Taken ";
...
String line;
while ((line = reader.readLine()) != null)
{
if (line.startsWith(ACTION_TAKEN_PREFIX))
{
actions.add(line.substring(ACTION_TAKEN_PREFIX))
// Keep reading the rest of the actions
break;
}
causes.add(line);
}
// Now handle the fact that either we've reached the end of the file, or we're
// reading the actions
Как только вы получили пару «Вероятная причина» / «Выполненные действия», преобразуйте список строк обратно в одну строку, например, присоединяясь с "\ n", а затем вставьте в базу данных. (Класс Joiner
в Guava сделает это проще.)
Хитрость связана с аномалиями:
- Что произойдет, если вы не начнете с вероятной причины?
- Что произойдет, если за одной вероятной причиной следует другая, или за одним набором действий следует другой?
- Что произойдет, если вы достигнете конца файла после прочтения вероятной причины, но без списка действий?
Сейчас у меня нет времени, чтобы написать complete решение, но, надеюсь, вышеизложенное поможет вам в этом.