replace与replaceAll()的区别

来源:互联网 发布:阿里云磁盘快照 编辑:程序博客网 时间:2024/05/16 01:36

replace与replaceAll()的区别

    之前在做项目时,需要将 double 类型但小数点后并没数值,只是为零,如 10.0之类的数值,其实并不是什么问题,但看起来不好看,因为不是数值上的取整,所以使用Math的ceil(小于其的最大整数)、round(四舍五入) 与 floor(取大于其的最小整数) ,其实应该可以先使用Math.ceil(num) ,去年其尾数,判断两数值是否相等,相等即可以 用 int newNum = Math.ceil(num) 代替原来的 num ,若小于则不需要去掉小数位。不过当然并没有这样想,算了,可能是太依赖网络了,没有自己去想!
     总之,在网上查的方法是这样的

String str=String.valueOf(dd).replaceAll("\\d+\\.", "");
System.out.println(str);


这个方法是得到小数点后面的数字,判断其是否为零,为零则使用

String str=String.valueOf(dd).replaceAll("\\.\\d+", "");


 得到其前面的数字,否则不用管,现在想想,真是笨得可以。

  算了,因为这样,知道这replaceAll() 这个方法,因为之前用过replace() 知道,replace(),是将字符串的旧的字节或字符串替换为新的字节或字符串的,例
    String str = "22323423";
      System.out.println(str.replace("3","9")); --->console 22929429

怎么其实 replaceAll() 的用法应该与 replace() 差不多才对,其实从我的项目代码中可以看到,其实它与 replace()的相同处就是都是替换字符或字符串,不过之处就是replace() 第一个参数是 字符或字符串,而replaceAll() 第一个参数是正则表达式、字符串、字符,当第一个参数是字符或字符串时,其功能与replace()相同,但是当第一个参数为正则表达式时,该方法会自动匹配,如我项目上的方法一样,将小数点和它前面的数字替换成“”,后面的就是将小数点或它后面的数字替换成“”。

还有注意的还有一个方法叫replaceFirst() ,跟replaceAll() ,不过同方法名可以知道,它只是替换第一次出现的,后面的不替换了

0 0
原创粉丝点击