Конкатенация строк в Java - PullRequest
       8

Конкатенация строк в Java

1 голос
/ 26 ноября 2011

У меня есть вывод из старой терминальной системы, которую необходимо объединить. Вот пример вывода.

output1 = 
LINE ONE
LINE TWO 
LINE THREE
NO DATA
LINE FOUR
LINE FIVE
LINE SIX         %

output2 = 
LINE FOUR        %
LINE FIVE 
LINE SIX 
LINE SEVEN
NO DATA
LINE EIGHT
END

может быть до 5 выходных строк, которые необходимо объединить. Проблема ... Могут быть дубликаты между строками (есть некоторые повторы (например, НЕТ ДАННЫХ), которые не следует удалять), поэтому простое сравнение строк невозможно.

correct answer should be:
LINE ONE
LINE TWO 
LINE THREE
NO DATA
LINE FOUR
LINE FIVE
LINE SIX 
LINE SEVEN
NO DATA
LINE EIGHT
END

Ищем решение Java.

Есть идеи? Спасибо.

Ответы [ 2 ]

1 голос
/ 26 ноября 2011

Если вы получаете данные в виде одного большого файла, вам следует начать с просмотра объекта «Сканер», например:

File f = new File("thefile.txt");
Scanner s = new Scanner(new BufferedReader(new FileReader(f))).useDelimiter("END");
while (s.hasNext()) {
    String block = s.next(); // string will now contain all text between instances of "END"
    // process the text block by splitting on \n
    String[] lines = block.split("\n");
    StringBuilder output = new StringBuilder();
    for ( String line : lines ) {
       // process each line, checking for duplicates, appending to output.
    }
    // write your final output to a file, etc.
}
1 голос
/ 26 ноября 2011

Подсказки:

читать каждую строку вывода

создать список

чек

if (!"NO DATA".equals(thisLine) {
    if(!list.contains(thisLine)){ /* add to list */}
}else{
    /* add to list */
}
...