Как заменить целую строку на другую в массиве в Java

Я хочу заменить, скажем, String oldString на String newString в массиве по строкам:

for (int i = 0; i < text.length; i++) {
    if (text[i].equals(oldString)) {
        text[i] = text[i].replace(oldString, newString);
    }
}

Как бы это сделать на Java?

Отвечает ли это на ваш вопрос? java заменить определенную строку в массиве строк

fantaghirocco 20.12.2020 16:24
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
1
423
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Вам не нужно использовать 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]

See also: Replace certain string in array of strings

Другие вопросы по теме