Java中的Replace和ReplaceAll的区别

news/2024/10/24 2:02:29/

        replace和replaceAll是都是String类中提供的两种用于字符/字符串替换的方法,从字面意思理解,replace表示替换单个匹配项,而replaceAll表示替换所有匹配项;实际上并不是这样子的,replace和replaceAll都是替换所有匹配项,replace是非正则模式替换,replaceAll是正则模式替换

      String类中一共提供了四种替换字符/字符串相关的方法,分别是replace的两个重载方法、replaceAll方法和replaceFirst方法

replace(字符):全部匹配的都替换;参数为字符(char)类型;不调用Pattern和Matcher方法。
replace(字串接口实现类):全部匹配的都替换;参数为字串接口实现类(如String);不支持正则匹配,调用Pattern(不匹配正则模式)和Matcher的replaceAll方法。
replaceAll:全部匹配的都替换,参数为String类型,支持正则匹配;调用Pattern(匹配正则模式)和Matcher的replaceAll方法。
replaceFirst:第一个匹配到的替换,参数为String类型,支持正则匹配;调用Pattern(匹配正则模式)和Matcher的replaceFirst方法。

主要相关的类主要有String、Pattern、Matcher

对应的调用关系图:

    

 

使用replaceAll和replaceFirst方法需要注意,参数要为正确的正则表达式,如果不正确会导致替换失败甚至报错。

比如下面的代码:

        String b = "这才是进度款发动机(ssdc)";String regexp = "这才是进度款发动机ssdc)";String vb = b.replaceAll(regexp, "AA");System.out.println(vb);

执行的时候会提示:

java.util.regex.PatternSyntaxException: Unmatched closing ')' near index 12 

提示我们正则表达式有误,没有正确的使用')'进行关闭。所以使用replaceAll和replaceFirst是需要注意自己的正则表达式有没有写对的。


http://www.ppmy.cn/news/79105.html

相关文章

【多线程】| 基本知识汇总

目录 🦁 掌握基本概念1. 什么是线程?2. 什么是主线程以及子线程?3. 什么是串行?什么是并行? 什么是并发?🦁 线程的创建1. 通过继承Thread类实现多线程2. 通过Runnable接口实现多线程🦁 线程执行流程🦁 常用的方法1. 线程休眠2. 线程让步3. 线程联合4. 获取线程名称…

TOGAF简介和核心概念—定义

抽象 提供详细和复杂内容的摘要或概括描述的技术。 注意: 抽象,如“抽象级别”,也可以意味着为分析提供一个关注一致和 常见的详细或抽象级别。从这个意义上说,抽象通常用于架构中,以允许一致的级别 在架构的每个领域…

搭建Freekan私人影视电影网站,cpolar内网穿透发布上线

文章目录 1.前言2.本地网页搭建2.1 环境使用2.2 支持组件和环境设置2.3 支持组件选和环境设置2.4 网页安装2.5 测试和使用2.6 问题解决 3.本地网页发布3.1 Cpolar云端设置3.2 Cpolar本地设置 4. 公网访问测试5. 结语 转发自CSDNprobezy的文章:使用Cpolarfreekan源码…

华为OD机试之按索引范围翻转文章片段(Java源码)

按索引范围翻转文章片段 题目描述 输入一个英文文章片段,翻转指定区间的单词顺序,标点符号和普通字母一样处理。 例如输入字符串”I am a developer. “,区间[0,3],则输出”developer. a am I”。 输入描述 使用换行隔开三个参数…

HEVC熵编码核心点介绍

熵编码基本原理 消息与信息 把客观物质运动和主观思维的活动状态表达出来就成为了消息;消息中包含信息,是信息的载体;因此,信息与消息既有区别又有联系的; 获取信息的过程就是一个消除或部分消除不确定性的过程&…

RocketMQ 领域模型概述

本文为您介绍 Apache RocketMQ 的领域模型。 Apache RocketMQ 是一款典型的分布式架构下的中间件产品,使用异步通信方式和发布订阅的消息传输模型。通信方式和传输模型的具体说明,请参见下文通信方式介绍和消息传输模型介绍。 Apache RocketMQ 产品具备…

MATLAB第十章_图像处理算法

目录 图像处理算法 图像处理基础 图像处理函数 默认显示方式 添加颜色条 显示多帧图像 显示动画 三维材质图像 图像的直方图 灰度变换 均衡直方图 图像处理应用 图像增强 图像重建 图像变换 图像压缩 图像分割 图像边缘检测 图像识别 图像处理算法 图像处理…

目标检测的通用实例提取

论文:General Instance Distillation for Object Detection 论文地址:https://arxiv.org/pdf/2103.02340.pdfhttps://arxiv.org/pdf/2103.02340.pdf 摘要 In recent years, knowledge distillation has been proved to be an effective solution for m…