



Вам не нужно использовать replace() в этом случае, так как вы уже проверяете, что text[i] равно oldString, что означает, что вы заменяете весь String, что означает, что присваивания достаточно:
for (int i = 0; i < text.length; i++) {
if (text[i].equals(oldString)) {
text[i] = newString;
}
}
Если, с другой стороны, вы хотите заменить подстроку text[i], которая равна oldString, на newString, вы можете написать:
for (int i = 0; i < text.length; i++) {
text[i] = text[i].replace(oldString,newString);
}
Вы можете использовать IntStream над индексами этого массива и обрабатывать определенные строки определенным образом:
String[] text = {"Lorem", "oldString", "dolor", "sit", "amet"};
IntStream.range(0, text.length)
// to filter the certain strings, or you
// can skip this line to process each string
.filter(i -> text[i].equals("oldString"))
// processing a string
.forEach(i -> text[i] = text[i].replace("oldString", "newString"));
System.out.println(Arrays.toString(text));
// [Lorem, newString, dolor, sit, amet]
Отвечает ли это на ваш вопрос? java заменить определенную строку в массиве строк