Я пытаюсь создать общий метод удаления String, который принимает два ввода String - parentString и cleanable, и возвращает parentString после полного удаления очищаемых из всех его вхождений в parentString, который работает очень хорошо, за исключением случаев, когда я говорю, чтобы удалить кавычки.Пользовательский метод Java для удаления подстроки - странное поведение при удалении кавычек
. Вот что я сделал:
public String remove(String parentString, String cleanable) {
int i = parentString.indexOf(cleanable);
Log.d(LOG_TAG, "print index " + i);
String child1, child2;
while (parentString.indexOf(cleanable) != -1) {
if (parentString.indexOf(cleanable) == 0) {
child1 = "";
} else {
child1 = parentString.substring(0, (i - 1));
}
Log.d(LOG_TAG, "print child1 " + child1);
child2 = parentString.substring(i + cleanable.length(), parentString.length() - 1);
Log.d(LOG_TAG, "print child2 " + child2);
parentString = child1 + child2;
Log.d(LOG_TAG, "print parent " + parentString);
}
return parentString;
}
Это прекрасно работает, когда вход в виде [ «Джоан Роулинг»], за исключением, и я применить метод, как автор = Удалить (автор, «\» "); Это дает следующие значения:
child1 = "" ;
child2= K. Rowling;
Я также заметил, что подстрока (х, у) метод возвращает «», когда х становится равным у Этот метод, который я создал ведет себя таким образом, я не понимаю.? , даже когда я использую простую логику. Я знаю, что есть уже доступные методы, которые будут делать то, что я пытаюсь сделать, но я хотел бы, чтобы этот метод работал.
Вы должны быть более четко один, что вы делаете, и что он должен делать. Посмотрите, как создать [mcve] – AxelH
PS: _I нужно разбирать данные JSON в моей программе_, не делайте этого самостоятельно, используйте более сложный API, который вы можете себе представить. – AxelH
Можете ли вы добавить пример параметров функции и ожидаемых результатов ? – Emax