java - Java中不使用replace函数替换字符

标签 java

我想替换"<(><<)>"与“<”,但在我的情况下它没有替换。

public class Test2 {

public static void main(String[] args)
    {
        String s1 = "<(><<)>script>";

       if( s1.contains("<(><<)>"))
       {
        s1.replaceAll("<(><<)>","<");
         }


    System.out.println("completeText"+s1);

    }

}

最佳答案

那是因为

  • replaceAll的第一个参数是一个正则表达式,这意味着您必须转义一些字符。
  • 您必须返回结果(字符串是不可变的,因此 replaceAll 不会更改您传递的字符串,而是构建一个新字符串)

使用

 s1 = s1.replaceAll("<\\(><<\\)>","<");

另请注意,您不必测试 if( s1.contains("<(><<)>")) :这增加了一个无用的条件和 replaceAll速度够快。

关于java - Java中不使用replace函数替换字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13393303/

相关文章:

java - 读取 JPEG 图像并计算图像坐标

java - 不实现抽象类中的方法(并使其不可访问)

java - 如何动态调整 JFrame 的大小以包含具有不同内容大小的 JPanel?

java - 计算数组列表中的素数

java - Selenium 网络抓取信息到列表中

java - 将 JSON 数组发布到 Spring Boot 2 JPA 中

java - 调整 3 列通用组件的布局,其他组件位于上方/下方

java - 无法使用 NetBeans 8.1 的 Gradle 支持插件构建 Gradle 项目

java - 用Java创建Hector集群

java - Apache CXF Maven 发行版和 CXF 发行版之间的区别