replace与replaceAll()的区别

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() ,不过同方法名可以知道,它只是替换第一次出现的,后面的不替换了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值