Нужна помощь с алгоритмом на Java

191
16 ноября 2021, 09:20

Мне приходят данные в txt в виде:

[json-massive1] text1 [json-massive2] text2 [json-massive3] и т.д. по 100-200 в файле. Мне надо привести инфу к виду:

[json-massive1] mytext1 [json-massive2] mytext2 [json-massive3] т.е. менять text на mytext между всеми символами "]" "[". Я могу заменить значения между первым и вторым массивом:

s1 = s.substring(s.indexOf("]") + 1);
s1 = s1.substring(0, s1.indexOf("["));
s2 = s.replace(s1, ",\"mytext\"" + 1 + ":" + "\n");  

s - весь текст в файле.

Но не понимаю как правильно сделать цикл для большего количества, подскажите пожалуйста, как это лучше сделать?

Answer 1

Ещё один простой способ изменить text1...text(n) на mytext1...mytext(n) используя тот же Pattern

int index = 1;
Pattern pattern = Pattern.compile("\\s"); //указываем пробел в качестве разделителя
String[] temp = pattern.split(text); //где text - текст файла преобразованный в String
for(int i = 0; i < temp.length; i++) {
 if(temp[i].equals("text" + index)) {
  temp[i] = "mytext" + index;
  index++;
 }
}

Далее , если необходимо, записываем в файл с помощью классов FileWriter и BufferedWriter. Выглядит примитивно но дает нужный результат

Answer 2

Вот регулярка:

\](.*?)\[

С её помощью Вы можете найти все текстовые значения между [json-massive].

// Инициализация
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(source);
// Обход совпадений с регуляркой
while (matcher.find())
{
    // Получаем найденный текст
    String text = matcher.group();
    // Далее формируем строку
    . . .
}

Как-то так.

READ ALSO
Комбинации регулярных выражений (Pattern) Java

Комбинации регулярных выражений (Pattern) Java

Имеется метод StringreplaceAll(String regex, String replacement)

198
Уменьшение времени на обход двух изображений при сравнении

Уменьшение времени на обход двух изображений при сравнении

Есть класс, где происходит сравнение двух изображений Bitmap

212
Почему в сущностях вместо примитивов используют классы-оболочки?

Почему в сущностях вместо примитивов используют классы-оболочки?

Видел очень много примеров создания сущностей, но почему-то всегда вместо любых числовых значений используют не примитивы, а классы-оболочкиНапример,...

103