Заменить последовательность символов в строке не работает

Я получаю данные из URL в строку a и передаю эту строку в качестве аргумента методу gson fromJson. Теперь мне нужно заменить некоторые подстроки в строке a.

    String url = "abc";
    String a = getDataFromURL(url); //this string contains all the data from the URL, and getDataFromURL is the method that reads the data from the URL.
    String tmp = "\"reservation\":\"www.\"";
    String tmpWithHttp = "\"reservation\":\"http://www.\"";

    if(a.contains(tmp))
    {
    a = a.replace(a, tmpWithHttp);
    }

Все данные в URL являются JSON. У меня есть требование, если строка содержит подстроку - "reservation":"www.замените это на "reservation":"http://www.

Приведенный выше код у меня не работает. Может ли кто-нибудь помочь мне здесь?

0

2 ответа

Решение

В своем вопросе вы указываете, что хотите заменить "reservation":"www., Тем не менее, в вашем коде вы добавили дополнительную экранированную цитату, в результате чего замена ищет "reservation":"www.", которого нет в строке.

Просто удалите последнюю сбежавшую цитату:

String tmp = "\"reservation\":\"www.";
2

Вы, вероятно, имеете в виду:

a = a.replace(tmp, tmpWithHttp);

вместо:

a = a.replace(a, tmpWithHttp);

И вам не нужно делать contains() проверьте перед заменой. String#replace Метод заменит только если присутствует подстрока для замены. Таким образом, вы можете удалить окружающие if,

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