Я работаю в Java, и я хочу принять следующую строку:Заменить повторяющуюся подстроку в строке
String sample = "This is a sample string for replacement string with other string";
И я хочу, чтобы заменить вторую «строку» с «это гораздо больше, строки», после того, как некоторые java magic будет выглядеть следующим образом:
System.out.println(sample);
"This is a sample string for replacement this is a much larger string with other string"
У меня есть смещение, где начинается текст. В этом случае 40 и текст заменяются «string».
Я мог бы сделать:
int offset = 40;
String sample = "This is a sample string for replacement string with other string";
String replace = "string";
String replacement = "this is a much larger string";
String firstpart = sample.substring(0, offset);
String secondpart = sample.substring(offset + replace.length(), sample.length());
String finalString = firstpart + replacement + secondpart;
System.out.println(finalString);
"This is a sample string for replacement this is a much larger string with other string"
но есть лучший способ сделать это другим, то с помощью функции подстроки Java?
EDIT -
Текст «строка» будет в строке образца, по крайней мере один раз, но может быть в том, что текст много раз, что смещение будет диктовать, который один заменяется (не всегда второй). Поэтому строка, которую нужно заменить, всегда совпадает со строкой.
Вы просто пытаетесь эффективно сделать «Это образец строка для замены это гораздо больше, строка с другой строкой» или вы ищете способ заменить конкретный экземпляр «string» в неизвестной строке? – Theopile
Чтобы решить проблему «Замените символы _M_, начиная со смещения _N_ исходной строки с заменой строки», я бы сказал, нет - нет лучшего способа, чем «подстрока», о которой я знаю. Если в Apache Commons или какой-либо другой сторонней библиотеке нет чего-либо. – ajb