• Java中replace()、replaceFirst()和replaceAll()区别


    来自   http://hi.baidu.com/homappy/item/724da9dc83c904f692a97442

    str.replace(str中被替换的,替换后的字符)

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

      1)replace的参数是char和CharSequence,即可以支持字符的替换,也支持字符串的替换(CharSequence即字符串序列的意思,说白了也就是字符串);

      2)replaceAll的参数是regex,即基于规则表达式的替换,比如,可以通过replaceAll("\\d", "*")把一个字符串所有的数字字符都换成星号;

      相同点是都是全部替换,即把源字符串中的某一字符或字符串全部换成指定的字符或字符串,如果只想替换第一次出现的,可以使用 replaceFirst(),这个方法也是基于规则表达式的替换,但与replaceAll()不同的是,只替换第一次出现的字符串;

      另外,如果replaceAll()和replaceFirst()所用的参数据不是基于规则表达式的,则与replace()替换字符串的效果是一样的,
           即这两者也支持字符串的操作;

    还有一点注意:
    执行了替换操作后,源字符串的内容是没有发生改变的(因为String 类是final类型的不可改写,但可以把处理得到的结果赋值).

      举例如下:

      String src = new String("ab43a2c43d");

      System.out.println(src.replace("3","f"));=>ab4f2c4fd.

      System.out.println(src.replace('3','f'));=>ab4f2c4fd.

      System.out.println(src.replaceAll("\\d","f"));=>abffafcffd.

      System.out.println(src.replaceAll("a","f"));=>fb43fc23d.

      System.out.println(src.replaceFirst("\\d,"f"));=>abf32c43d

      System.out.println(src.replaceFirst("4","h"));=>abh32c43d.

      如何将字符串中的"\"替换成"\\":

      String msgIn;

      String msgOut;

      msgOut=msgIn.replaceAll("\\\\","\\\\\\\\");

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

      同样

      CODE: \\\\\\\\

      Java: \\\\

      Regex: \\

      将字符串中的'/'替换成'\'的几种方式:

      msgOut= msgIn.replaceAll("/", "\\\\");

      msgOut= msgIn.replace("/", "\\");

  • 相关阅读:
    java操作生成jar包 和写入jar包
    jboss配置jndi连接池
    windows 域的LDAP查询相关举例
    LDAP error Code 及解决方法
    HDU 6417
    CF1299D Around the World
    codechef Chef and The Colored Grid
    Educational Codeforces Round 82 (Rated for Div. 2)
    CF1237F Balanced Domino Placements
    CF1254E Send Tree to Charlie
  • 原文地址:https://www.cnblogs.com/renrenbinbin/p/2839229.html
Copyright © 2020-2023  润新知