`

java replaceall()和replace()

 
阅读更多

####我的应用

String path="D:\\b2cPlatform\\onlinePayment";
imgPath =  path.replace("\\", "/");
 

乍一看,字面上理解好像replace只替换第一个出现的字符(受javascript的影响),replaceall替换所有的字符,其实大不然,只是替换的用途不一样。


public String replace(char oldChar,char newChar)
返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 而生成的。 如 果 oldChar 在此 String 对象表示的字符序列中没有出现,则返回对此 String 对象的引用。否则,创建一个新的 String 对象,用来表示与此 String 对象表示的字符序列相等的字符序列,除了每个出现的 oldChar 都被一个 newChar 替换之外。


public String replaceAll(String regex,String replacement)使用给定的 replacement 字符串替换此字符串匹配给定的正则表达式的每个子字符串。此方法调用的 str.replaceAll(regex, repl) 形式产生与以下表达式完全相同的结果:
Pattern.compile(regex).matcher(str).replaceAll(repl)
参数:
regex – 用来匹配此字符串的正则表达式
返回:得到的 String
抛出: PatternSyntaxException – 如果正则表达式的语法无效。


实际应用:
public static void main(String[] arg) throws OgnlException {
String s =”sdf\\a\\aa”;
//把s中的反斜杠\ 替换为\\
System.out.println(s);
System.out.println(s.replaceAll(“\\\\”, “\\\\\\\\”));
System.out.println(s.replace(“\\”, “\\\\”));
}

可以看出上面两种都返回相同的替换结果,控制台输出内容如下:

sdf\a\aa
sdf\\a\\aa
sdf\\a\\aa


这 里的关键是String.replaceAll()是用regular expression 来作为参数的。但是java本身的字符串对于转义符\也有类似的处理。首先,java会把“\\\\”解释成一个字符串(其中包含两个char)——“\ \”这个就是你在JDK的文档里看到的。
接下来,由于replaceAll是以正则表达式作为参数,所以“\\”被解释成一个regex。对于一个regex来说这就代表着一个字符,就是“\”。对后面的那个8个\来说,最终会被解释成“\\”。
换言之,假设String.replaceAll()是以普通字符串,而不是regex作为参数,那么这样写代码: String target = source.replaceAll(‘\\’, ‘\\\\’); 就可以了。

 

分享到:
评论

相关推荐

    浅谈Java中replace与replaceAll区别

    Java 中的字符串 replacement 是一个非常重要的知识点,今天我们就来探讨 Java 中的 replace 和 replaceAll 方法之间的区别。 首先, lets Talk about Java 中的 replace 方法。replace 方法有两个重载方法:...

    Java中replace、replaceAll和replaceFirst函数的用法小结

    Java中的`replace`、`replaceAll`和`replaceFirst`是字符串操作中常见的方法,用于替换字符串中的特定子串。它们都是`String`类的方法,但各自有不同的行为和用途。 1. `replace(CharSequence target, CharSequence...

    Java中replace和replaceAll的区别

    replace和replaceAll是JAVA中常用的替换字符的方法,它们的区别是:  1)replace的参数是char和CharSequence,即可以支持字符的替换,也支持字符串的替换(CharSequence即字符串序列的意思,说白了也是字符串);  2)...

    java replace

    在Java编程语言中,`replace`方法是字符串(String)类的一个重要成员,用于替换字符串中的特定字符或子串。这个方法在处理文本数据时非常常用,尤其在我们需要替换某个字符或者模式时。下面我们将详细探讨`replace`...

    浅谈java中replace()和replaceAll()的区别

    在Java编程语言中,`replace()` 和 `replaceAll()` 都是用来进行字符串替换的函数,但它们之间存在一些关键差异。 `replace()` 方法接受两个 `char` 类型的参数,一个是需要查找的字符,另一个是用于替换的字符。这...

    Java replaceAll()方法报错Illegal group reference的解决办法

    在Java编程中,`replaceAll()`方法是用于字符串替换的一个强大工具,它接受两个参数:一个正则表达式作为第一个参数,以及一个替换字符串作为第二个参数。然而,如果使用不当,可能会遇到`Illegal group reference`...

    Java String.replace()方法"无效"的原因及解决方式

    在使用Java String类型的replace和replaceAll方法时,我们需要注意这种机制,不要以为replace和replaceAll方法会修改原来的字符串对象,而是需要将返回值赋值给一个新的字符串对象。 补充知识:Java String字符串...

    js使用正则实现ReplaceAll全部替换的方法

    第三种方法尤其有用,因为它可以直接调用,语法上与Java或其他一些语言的replaceAll方法一致,提高了代码的可读性和易用性。 此外,文中还提到了两个JavaScript正则表达式工具网站,提供了在线测试和在线生成正则...

    Java字符串替换函数replace()用法解析

    - `replace()`方法只能替换精确匹配的子串,如果需要进行正则表达式替换,应使用`replaceAll()`方法。 - 对于大量替换操作,`StringBuilder`或`StringBuffer`的`replace()`方法效率更高,因为它们在内存中操作,...

    Java中转义字符反斜杠\的代替方法及repalceAll内涵解析

    使用replaceAll方法替换反斜杠(\)需要注意正则表达式的使用和Java的转义规则,以避免字符串解析错误。 补充说明:String的replaceAll方法和Matcher的replaceAll方法类似,都是使用正则表达式来替换字符串。String...

    java去除空格、标点符号的方法实例.docx

    在Java中,去除空格可以使用trim()、replace()、replaceAll()等方法。 1. 使用trim()方法去除首尾空格 trim()方法可以去除字符串的首尾空格,但是不能去除中间的空格。例如: ```java String str = " hello world ...

    JavaScript中使用replace结合正则实现replaceAll的效果

    在Java 11中引入了`replaceAll`方法,但在JavaScript中,我们可以通过以下方式实现相同的效果: ```javascript string.replace(new RegExp(oldString, "g"), newString) ``` 这里的参数解析如下: 1. `oldString`...

    java 替换指定的字符

    在这个示例中,我们首先用`replace()`方法将感叹号替换为问号,然后用`replaceAll()`方法将"World"替换为"Users"。 至于`Java.jpg`,它可能是一个相关的图片资源,用于说明Java标识或者与字符替换相关的图形示例。...

    Java面试要点(适用于2年以上经验,1年亦可)

    5. JDK 6 和 JDK 7 中 substring 的原理及区别、replaceFirst、replaceAll、replace 区别 6. String.valueOf 和 Integer.toString 的区别、字符串的不可变性 7. 自动拆装箱 8. Integer 的缓存机制 9. 熟悉 Java 中...

    replaceAll()如何同时替换多个不同的字符串(或多个符号)

    Java中的replaceAll()方法怎么才能同时替换多个不同的字符串呢? 正好我遇到过这个情况,就跟她分享了一下心得,解决问题后的她开心的像刚充完气儿一样。 这让我颇感欣慰,在这里我也分享给大家。 需求场景 场景1: ...

    java去除字符串中的空格、回车、换行符、制表符.pdf

    在 Java 中,我们可以使用正则表达式和 String 类的 replace() 方法来实现这项任务。 1. 使用正则表达式 Java 的 Pattern 类和 Matcher 类提供了强大的字符串处理功能。我们可以使用正则表达式来匹配和替换字符串...

    java 去除多余的空白

    如果需要去除字符串中所有连续的多个空白字符,可以使用`replace()`或`replaceAll()`方法。`replace()`用于替换简单的字符,而`replaceAll()`使用正则表达式,能处理更复杂的情况。下面的代码演示了如何用空格替换...

    java 代码实现kindle电子书笔记整理

    Java的`String`类提供了丰富的操作方法,如`replace()`和`replaceAll()`,可以用于处理和格式化笔记内容。 7. **数据持久化**: 为了保存用户的配置或者已导入的笔记,程序可能利用了数据库或JSON文件。Java的`java....

    java面试题-50道最容易考的java题

    包括获取长度(`length()`)、获取特定位置的字符(`charAt(int index)`)、查找子串(`indexOf()`)、截取子串(`substring(...replace()`、`replaceAll()`)、分割字符串(`split()`)以及去除空白字符(`trim()`)等...

    完整版 Java初级教程 Java语言程序设计 第7章 Java中的常用类(共14页).ppt

    【Java初级教程】Java语言程序设计的第7章主要探讨了Java中的一些常用类,包括`java.lang.String`、`java.lang.StringBuilder`和`java.util.StringTokenizer`。以下是对这些类的详细解释: 1. **`java.lang.String`...

Global site tag (gtag.js) - Google Analytics