String.substring () либо возвращает часть ob String между двумя позициями (в cleaned.substring(0, 1)
, которая будет содержимым cleaned
между позициями 0 и 1), либо если вы дадите этому методу только 1 int-аргумент, он возвращает часть вашей String, которая идет после этой позиции.
Например, с sentence="xR-MxR-MHelloxR-M" and remove="R-M"
вы получите:
cleaned = "xR-MxR-MHelloxR-M"
loc = 1
Так что цикл while будет выглядеть следующим образом:
cleaned.substring(0, loc-1)
возвращает "x"
и cleaned.substring(loc+remove.length())
возвращает "xR-MHelloxR-M"
.Итак cleaned = "xxR-MHelloxR-M"
.Затем loc становится позицией следующего вхождения remove
.
Словом, ваш цикл while удаляет каждое вхождение строки remove
из строки sentence
и сохраняет результат в cleaned
.
Для подстроки () отметьте https://www.javatpoint.com/substring.
Редактировать:
Если вы хотите, чтобы первый символ перед подстрокой тоже был удален,вам просто нужно сказать
loc = cleaned.indexOf(remove) - 1;