Java中String的replace、replaceAll和replaceFirst方法

news/2025/5/26 10:29:00

Java中String的replace、replaceAll和replaceFirst方法

  • 一、三种方法的介绍
    • 1、replace、replaceAll和replaceFirst是JAVA中常用的替换字符的方法,它们的区别是
    • 2、相同点
    • 3、不同点
    • 4、斜杠问题

一、三种方法的介绍

1、replace、replaceAll和replaceFirst是JAVA中常用的替换字符的方法,它们的区别是

  1. replace(CharSequence target, CharSequence replacement) ,用replacement替换所有的target,两个参数都是字符串。
  2. replaceAll(String regex, String replacement) ,用replacement替换所有的regex匹配项,regex很明显是个正则表达式,replacement是字符串。
  3. replaceFirst(String regex, String replacement) ,基本和replaceAll相同,区别是只替换第一个匹配项。

2、相同点

replace和replaceAll都是全部替换,即把源字符串中的某一字符或字符串全部换成指定的字符或字符串

3、不同点

  • replace替换的只能是字符或字符串形式。
  • replaceAll和replaceFirst()是基于规则表达式(正则表达式)的替换。
  • replaceAll是替换所有的,而replaceFirst()仅替换第一次出现的。
  • 另外,如果replaceAll()和replaceFirst()所用的参数据不是基于规则表达式的,则与replace()替换字符串的效果是一样的,即这两者也支持字符串的操作。
  • 还有一点注意::执行了替换操作后,源字符串的内容是没有发生改变的。

举例说明

class DemoApplicationTests {void contextLoads4() {String src = "ab43a2c43d";System.out.println(src.replace("3", "f"));System.out.println(src.replace('3', 'f'));System.out.println(src.replaceAll("\\d", "f"));System.out.println(src.replaceAll("3", "f"));System.out.println(src.replaceFirst("\\d", "f"));System.out.println(src.replaceFirst("3", "f"));System.out.println(src);}
}

在这里插入图片描述

4、斜杠问题

下面尝试用提到的三种字符串替换方式替换把字符串中a替换成\a,代码如下

        System.out.println("abac".replace("a", "\\a")); //\ab\acSystem.out.println("abac".replaceAll("a", "\\a")); //abacSystem.out.println("abac".replaceFirst("a", "\\a")); //abacSystem.out.println("abac".replaceAll("a", "\\\\a")); //\ab\acSystem.out.println("abac".replaceFirst("a", "\\\\a")); //\abac

如何将字符串中的"“替换成”"

String a ="H\\llo";
System.out.println(a); //=>H\llo
System.out.println(a.replace("\\","\\\\")); //=>H\\llo
System.out.println(a.replaceAll("\\\\","\\\\\\\\")); //=>H\\llo

原因:

'‘在java中是一个转义字符,所以需要用两个代表一个。例如System.out.println( “” ) ;只打印出一个""。但是’'也是正则表达式中的转义字符(replaceAll 的参数就是正则表达式),需要用两个代表一个。所以:\被java转换成\,\又被正则表达式转换成\。

String msgIn = "a/b"; 
String msgOut;
msgOut= msgIn.replaceAll("/", "\\\\"); 
msgOut= msgIn.replace("/", "\\"); 
msgOut= msgIn.replace('/', '\\');
文章来源:https://blog.csdn.net/weixin_46146718/article/details/121140635
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:https://dhexx.cn/news/show-18271.html

相关文章

【数据库复习】第二章关系数据库2

象集(Image Set)关系R(X , Z), X, Z是属性组,x是X上的取值,定义x在R中的象集为Zx { t[Z] | tR t[X] x }从R中选出在X上取值为x的元组,去掉X上的分量,只留Z上的分量除运算给定关系R(X&#xff…

GhostDoc的使用

一、简介 GhostDoc是Visual Studio的一个免费插件,可以为开发人员自动生成XML格式的注释文档。 二、下载 需要的朋友可以去这里下载,填个Email地址就可以下了:GhostDoc下载地址 三、安装 下载安装完成后,可以在Visual Studio的工具…

HDU 4870Rating(推公式)

有关这个题的高斯消元的方法已经在我的另一篇博客中给出http://www.cnblogs.com/gj-Acit/p/3888382.html 这里介绍一个很吊的解法,复杂度降到了O(n),以下转自http://www.cnblogs.com/chanme/p/3861766.html 先考虑一场比赛的情况,定义dp[k]为…

spark常用RDD算子 - saveAsTextFile、saveAsObjectFile 可保存到本地文件或hdfs系统中

saveAsTextFile 函数原型 def saveAsTextFile(path: String): Unit def saveAsTextFile(path: String, codec: Class[_ <: CompressionCodec]): Unit saveAsTextFile用于将RDD以文本文件的格式存储到文件系统中。 从源码中可以看到&#xff0c;saveAsTextFile函数是依赖…

Linux服务器编辑jar包并重新运行与直接修改jar包

Linux服务器编辑jar包并重新运行与直接修改jar包一、第一种效果展示1、修改前jar包2、修改中3、修改后二、第一种命令三、第二种编辑jar包一、第一种效果展示 1、修改前jar包 2、修改中 3、修改后 二、第一种命令 #解压jar包 jar xvf xxx.jar #进相关目录改非class文件 #改…

hdu 4686 Arc of Dream(矩阵快速幂)

链接&#xff1a;http://acm.hdu.edu.cn/showproblem.php?pid4686 题意&#xff1a; 其中a0 A0ai ai-1*AXAYb0 B0bi bi-1*BXBY 最后的结果mod 1,000,000,007 n<10^18. 分析&#xff1a;ai*bi(ai-1 *axay)*(bi-1 *bxby) (ai-1 * bi-1 *ax*bx)(ai-1 *ax*by)(bi-1 *bx*ay)…

纠结的CLI C++与Native C++的交互

最近在写点东西&#xff0c;涉及到了CLR C与Native C的互相调用的问题&#xff0c;结果...........纠结啊。 交互原型 交互原型是这样的&#xff1a; void* avio_alloc_context(unsigned char *buffer,int buffer_size,int write_flag,void *opaque,int (*read_packet)(void *o…

kafka概述,架构说明,相关的名词解释

消息队列两种模式&#xff1a;点对点与发布订阅 生产者发送一条消息到queue&#xff0c;只有一个消费者能收到。 发布者发送到topic的消息&#xff0c;只要订阅了该topic的订阅者都会收到消息。kafka架构图 Kafka 是一个分布式(发布订阅的)消息队列。Kafka 对消息保存时根据 …

JAVA基础知识

JAVA基础知识一、什么是对象二、JVM性能调优1、栈2、程序计数器3、堆4、方法区&#xff08;1.8后称元空间&#xff09;5、本地方法栈6、STW7、总结三、Jdk和Jre和Jvm四、与equals五、final六、String、StringBuffer、StringBuilder七、重载和重写八、抽象类和接口的区别九、lis…

栈Stack和段寄存器SS,SP(学习汇编)

1. 栈有2个基本操作&#xff1a;入栈、出栈 2. 栈顶的元素总是最后入栈&#xff0c;最先出栈&#xff1b;后进先出。 3. 8086CPU提供入栈和出栈的指令&#xff0c;最基本的两个是 PUSH(入栈) 和 POP(出栈) push ax 表示将AX寄存器的内容送入栈中&#xff0c; pop ax 表示从栈…