String-字符串替换

2023-11-11

  • 例子:原始字符串:String demo = “aback::!”;

一、replace:字符或者字符串替换

使用String的replace方法进行字符或者字符串替换

1、使用方法

String replace = demo.replace("::", "-");
        System.out.println(demo + " after replace " + replace);

输出 :aback::! after replace aback-!

2、源码

  • 可以看出参数为字符序列或者可以说成是字符串,和将要替换成的字符串
 public String replace(char oldChar, char newChar) {
        if (oldChar != newChar) {
            int len = value.length;
            int i = -1;
            char[] val = value; /* avoid getfield opcode */

            while (++i < len) {
                if (val[i] == oldChar) {
                    break;
                }
            }
            if (i < len) {
                char buf[] = new char[len];
                for (int j = 0; j < i; j++) {
                    buf[j] = val[j];
                }
                while (i < len) {
                    char c = val[i];
                    buf[i] = (c == oldChar) ? newChar : c;
                    i++;
                }
                return new String(buf, true);
            }
        }
        return this;
    }

  public String replace(CharSequence target, CharSequence replacement) {
        return Pattern.compile(target.toString(), Pattern.LITERAL).matcher(
                this).replaceAll(Matcher.quoteReplacement(replacement.toString()));
    }

二、replaceAll:多个正则替换

使用String的replaceAll方法进行正则替换

1、使用方法

 String replaceAll = demo.replaceAll("[a=,:@]", "-");
        System.out.println(demo + " after replaceAll " + replaceAll);

输出:aback::! after replaceAll -b-ck–!

2、源码

  • 参数为应用的正则和将要替换成的字符串
  public String replaceAll(String regex, String replacement) {
        return Pattern.compile(regex).matcher(this).replaceAll(replacement);
    }

三、replaceFirst:首次出现替换

使用String的replaceFirst方法进行正则替换

1、使用方法

  String replaceFirst = demo.replaceFirst("a", "-");
        System.out.println(demo + " after replaceFirst " + replaceFirst);

输出:aback::! after replaceFirst -back::!

2、源码

  • 参数为应用的正则和将要替换成的字符串
  • 只替换第一次匹配到的内容
  public String replaceFirst(String regex, String replacement) {
        return Pattern.compile(regex).matcher(this).replaceFirst(replacement);
    }
  • 类:Matcher
    • 找到处理就返回
      public String replaceFirst(String replacement) {
        if (replacement == null)
            throw new NullPointerException("replacement");
        reset();
        if (!find())
            return text.toString();
        StringBuffer sb = new StringBuffer();
        appendReplacement(sb, replacement);
        appendTail(sb);
        return sb.toString();
    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

String-字符串替换 的相关文章

随机推荐

  • 【Mo 人工智能技术博客】基于耦合网络的推荐系统

    基于耦合网络的推荐系统 作者 陈东瑞 1 复杂网络基础知识 当我们拿起手机给家人 朋友或者同事拨打电话时 就不知不觉中参与到了社交网络形成的过程中 当我们登上高铁或者飞机时 就可以享受交通网络给我们带来的方便 即使当我们躺在床上什么也不干时
  • 【Java小实验】【Java并发】使用线程池按行并发取二维数组最大值

    使用线程池按行并发取二维数组最大值 生成二维数组 使用Callable实现线程 使用Runnable获取线程 快手后端二面问题 由于网上直接搜竟然没有搜出来 自己写了一下 生成二维数组 生成二维数组的公共类 class RandomArra
  • Mybatis中@MapKey注解简介说明

    转自 Mybatis中 MapKey注解简介说明 下文笔者讲述Mybatis中 MapKey注解的简介说明 Mybatis中 MapKey注解的功能 MapKey注解 1 用于返回map的key值 通常情况下使用唯一键作为key 2 此注解
  • 网络原理(四):传输层协议 TCP/UDP

    目录 应用层 传输层 udp 协议 端口号 报文长度 udp 长度 校验和 TCP 协议 确认应答 超时重传 链接管理 滑动窗口 流量控制 拥塞控制 延时应答 捎带应答 总结 我们第一章让我们对网络有了一个初步认识 第二章和第三章我们通过代
  • NSI45025AT1G 25mA 45V LED驱动器,恒流调节器 工业指示灯、背光灯解决方案

    NSI45025AT1G是一款线性恒流调节器是一种简单 经济和稳健的装置 旨在为LED 类似于恒流二极管 CCD 中的电流调节提供一种成本有效的解决方案 恒流调节器基于自偏置晶体管 SBT 技术 在宽电压范围内调节电流 具有负温度系数 以保
  • 第一章 红绿灯数据采集

    第一章 红绿灯数据采集 华为hilens主控 AI实现自主导航和红绿灯控制 总章目录 第一章 Hilens红绿灯数据采集 第二章 ModelArts数据处理 第三章 ModelArts模型训练 第四章 ModelArts模型转换 第五章 H
  • 国内各大互联网公司技术团队站点

    利用闲暇时间整理了一份国内各大互联网公司的相关技术站点 希望能够对大家有所帮助 也欢迎各位帮忙补充 1 腾讯系列 名称 地址 财付通设计中心TID 地址 fitdesign tencent com QQ邮箱博客 地址 blog mail q
  • 使用linux服务器相关命令

    最近需要在云GPU服务器上跑模型 初次接触这样的形式 因此记录一下比较常用的命令 一 ssh登陆指令 1 常见登陆方式 ssh 用户名 服务器ip 2 有端口号和用户名的登陆方式 ssh l 用户名 服务器ip p 端口号 二 scp指令
  • git push遇到503错误的解决方案:The requested URL returned error: 503

    git remote set url origin https your user name github com your user name your project name git 参考了这个blog https www shuiz
  • 球谐函数在环境光照中的使用原理

    在三维空间中如何对场景光照进行球谐函数展开 图形学论文解析与复现 Spherical Harmonic Lighting The Gritty Details 首先 对场景中某像素点的漫反射光照进行计算 L p w
  • 机房 机柜的保养 和清理

    https www linuxprobe com clear idc html
  • 取消Allegro的PCB文件在Drill Legend后产生的过孔标注的方法

    在cadence的PCB编辑完成后 Drill Legend生产钻孔说明表 程序会自动加上钻孔的标注 如图 给后续的再次编辑带来困扰 关闭方法 关闭图层Manufacturing gt Ncdrill Figure即可关闭钻孔标注
  • float取小数点后几位_float类型的存储方式

    在c语言中float函数是单精度的 它在内存中以二进制的形式存储 分为符号位 阶码与尾数三部分 符号位最为简单 如果你存储的是正数那么符号数就是0 如果是负数 则为1 下面 我以13 625为例说明阶码与尾数的表示方法 首先 我们取出13
  • 深入理解程序设计使用linux汇编语言(一)

    在编译运行第四章power函数遇到报错 报错信息Invalid SP address 0xffffdf2c 通过gdb定位到程序 gt 0x40007e
  • mysql数据库,oracle数据库中对字段的拼接方法

    mysql数据库 oracle数据库中对字段的拼接方法 1 简介 在日常开发中 常常有将多个字段拼接进行sql操作的场景 比如做模糊查询 我这里分两种环境阐述 1 在数据库中的写法 2 在mybatis或mybatisplus中的写法 2
  • Matlab绘图-详细全面(图)

    Matlab绘图 强大的绘图功能是Matlab的特点之一 Matlab提供了一系列的绘图函数 用户不需要过多的考虑绘图的细节 只需要给出一些基本参数就能得到所需图形 这类函数称为高层绘图函数 此外 Matlab还提供了直接对图形句柄进行操作
  • 自动驾驶(五十三)---------浅析深度学习与自动驾驶

    之前有分析过深度学习和自动驾驶的关系 但是主要是在视觉的基础上来分析的 连接 这里想从各个角度来分析深度学习在自动驾驶中的应用 如果你正好有这方面的需要 不妨选择一个着力点 笔者从事自动驾驶3年来 也处于瓶颈期 需要在一个特定的领域深挖 这
  • 华为OD机试真题-最大花费金额-2023年OD统一考试(B卷)

    题目描述 双十一众多商品进行打折销售 小明想购买自己心仪的一些物品 但由于受购买资金限制 所以他决定从众多心仪商品中购买三件 而且想尽可能的花完资金 现在请你设计一个程序帮助小明计算尽可能花费的最大资金数额 输入描述 输入第一行为一维整型数
  • 区块链技术生态的设计

    区块链技术生态的设计 详见 区块链技术生态
  • String-字符串替换

    例子 原始字符串 String demo aback 文章目录 一 replace 字符或者字符串替换 1 使用方法 2 源码 二 replaceAll 多个正则替换 1 使用方法 2 源码 三 replaceFirst 首次出现替换 1