Я получаю текстовый файл с содержимым, как показано ниже. Я хочу получить данные между 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.
Взгляните на использование indexOf
, чтобы найти начальный и конечный индексы на основе подстрок (Tax%
и "Error Message"
), а затем возьмите подстроку между этими индексами.
разделите свой контент на новую строку '\n', а затем проведите проверку массива для начальной и конечной строки. Возможно, предложение @TheGamer007 лучше, это зависит от того, что вы планируете делать с остальной частью строки.
Ниже приведен фрагмент кода для извлечения желаемого результата:
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();
Теперь снова редактировать ваш вопрос и включите код Java, который анализирует
textContent
, как вам нужно. Это работает?