Код: Выделить всё
class StringRemover
{
private String remove;
private String sentence;
public StringRemover( String sen, String rem )
{
sentence = sen;
remove = rem;
}
public void removeStrings()
{
String newsentence = sentence;
String newsentence2 = sentence;
while(newsentence.indexOf(remove)>=0)
{
System.out.println(newsentence);
newsentence2 = newsentence.substring(newsentence.indexOf(remove)-1, remove.length()+1);
newsentence = newsentence.replace(newsentence2, "");
}
System.out.println(newsentence);
}
public String toString()
{
return sentence;
}
}
public class StringRemoverRunner
{
public static void main( String args[] )
{
StringRemover s = new StringRemover("sxsssxssxsxssexssxsesss", "xs");
s.removeStrings();
System.out.println(s);
}
}
В качестве конечного результата выводится «ssesss» вместо «sesss».
Я пробовал разные способы но они не работают
Я пробовал изменить индексы подстроки, но это все равно не дает правильного результата.
Я проверил документацию по String.replace(), но не нашел не понимаю, почему это не так работает.
Почему я получаю этот неожиданный результат и как я могу его исправить, чтобы получить правильный результат («sess»)?
Забыл упомянуть, что мне также нужно удалить символ, прежде чем я удалю его "xs", но мне также нужно удалить символ перед этим.
Подробнее здесь: https://stackoverflow.com/questions/792 ... her-string
Мобильная версия