Получить текстовое содержимое, сопоставив начальное и конечное слова

Я получаю текстовый файл с содержимым, как показано ниже. Я хочу получить данные между start_word=Tax% и end_word = "ErrorMessage".

ParsedText: 
Tax%    
63  2  .90  0.00  D INTENS  SH 80ML(48)     9.00%   9.00% 
23  34013090    0.0     DS PURE WHIT 1 COG (24)     9.00%   9.00%   
"ErrorMessage":"","ErrorDetails":""

После получения вывод будет

63  2  .90  0.00  D INTENS  SH 80ML(48)     9.00%   9.00% 
23  34013090    0.0     DS PURE WHIT 1 COG (24)     9.00%   9.00%   

Пожалуйста помоги.

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

import org.apache.camel.Exchange;
import org.apache.camel.Processor;

public class DataExtractor implements Processor{

    @Override
    public void process(Exchange exchange) throws Exception {
        String textContent=(String) exchange.getIn().getBody();
        System.out.println("TextContents >>>>>>"+textContent);

    }

}

В текстовом содержании я получаю содержимое, которое я дал выше. Мне нужна помощь в получении данных в java.

Теперь снова редактировать ваш вопрос и включите код Java, который анализирует textContent, как вам нужно. Это работает?

user11044402 12.06.2019 10:52

Взгляните на использование indexOf, чтобы найти начальный и конечный индексы на основе подстрок (Tax% и "Error Message"), а затем возьмите подстроку между этими индексами.

shriakhilc 12.06.2019 10:56

разделите свой контент на новую строку '\n', а затем проведите проверку массива для начальной и конечной строки. Возможно, предложение @TheGamer007 лучше, это зависит от того, что вы планируете делать с остальной частью строки.

Joakim Danielson 12.06.2019 10:57
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
3
39
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Ниже приведен фрагмент кода для извлечения желаемого результата:

    String[] strArr = textContent.split("\\r?\\n");
    StringBuilder stringBuilder = new StringBuilder();
    boolean appendLines = false;
    for(String strLines : strArr) {
        if (strLines.contains("Tax%")) {
            appendLines = true;
            continue;
        }
        if (strLines.contains("\"ErrorMessage\"")) {
            break;
        }
        if (appendLines){
            stringBuilder.append(strLines);
            stringBuilder.append(System.getProperty("line.separator"));
        }
    }

    textContent =  stringBuilder.toString();

Другие вопросы по теме