Мне нужно разбить строку на конкретный String
, который может быть размещен в любом месте (может быть многократное появление этой строки одновременно) и восстановить всю строку, добавив выдержки в нечто вроде StringBuffer
. Случай конкретной строки искать должен быть нечувствительнымизвлечение кратных одной строки из строки
Например:
String targeted = "test" ;
String plainString ="azertytestqwerty";
//desired outcome
StringBuffer sb = new StringBuffer();
sb.append("azerty");
sb.append("test");
sb.append("qwerty");
--------------------------
String targeted = "test" ;
String plainString ="a.test";
//desired outcome
StringBuffer sb = new StringBuffer();
sb.append("a.");
sb.append("test");
--------------------------
String targeted = "test" ;
String plainString ="test mlm";
//desired outcome
StringBuffer sb = new StringBuffer();
sb.append("test");
sb.append("mlm");
--------------------------
String targeted = "test" ;
String plainString ="aaatestzzztest";
//desired outcome
StringBuffer sb = new StringBuffer();
sb.append("aaa");
sb.append("test");
sb.append("zzz");
sb.append("test");
Любой простой способ сделать это?
Я думаю, что нужно использовать регулярное выражение как:
Pattern pattern = Pattern.compile(".*"+targeted +".*");
Matcher matcher = pattern.matcher(text);
if (matcher.find())
{
System.out.println(matcher.group(1));
}
Но тогда я не знаю, как извлечь строки и добавить их в таком же порядке
Причина, почему я это делаю это потому что plainString
будет добавлен в ячейку Excel с помощью POI, но мне нужно добавить цвет шрифта для целевой строки.
Пример:
XSSFRichTextString richString = new XSSFRichTextString();
richString.append("azerty");
richString.append("test", highlightFont);
richString.append("qwerty");
cell.setCellValue(richString);
Большое спасибо
Какова цель добавления в StringBuffer, как это? Если вы «реконструируете всю строку», что-то не так с тобой 'StringBuffer sb = new StringBuffer (plainString);' – dustinroepsch
@Dustin Ryan-Roepsch. Сообщение отредактировано с дополнительными комментариями. Большое спасибо :) – ulquiorra
Gotcha! Это имеет смысл :) – dustinroepsch