java - 替换字符串中的字符序列不起作用

标签 java

我正在将数据从 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。我这里的要求是,如果字符串 a 包含子字符串 - "reservation":"www.,请将其替换为 "reservation":"http://www. >

我的上面的代码不起作用。有人可以帮我吗?

最佳答案

您可能的意思是:

a = a.replace(tmp, tmpWithHttp);

而不是:

a = a.replace(a, tmpWithHttp);

并且您不需要在替换之前进行 contains() 检查。仅当要替换的子字符串存在时,String#replace 方法才会进行替换。因此,您可以删除周围的 if

关于java - 替换字符串中的字符序列不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17766082/

相关文章:

java - 通用返回类型上限 - 接口(interface)与类 - 令人惊讶的有效代码

java - 如何使用 AJAX 更新 Wicket DataView?

java - Ubuntu 上的 MySQL 异常 : com. mysql.jdbc.exceptions.jdbc4.CommunicationsException:通信链路故障

java - 通过键盘管理对象移动

java - 根据 Gradle 文件中的配置文件区分依赖关系

java - Jasypt 停止维护了吗?使用 Spring Boot 进行加密时使用什么

java - 在 docker 文件中获取内存限制?

java - BigDecimal 乘法返回 0?

java - Java 7 和 8 中的 32 位堆优化

java - 预期和实际未显示在控制台日志中 - Groovy Spock