split,replaceAll使用

        今天写代码,遇到了个问题,想把字符串中的'.'全部去掉,之前也用过一些处理的办法,今天使用了String中的replaceall方法,拿来大家一起学习学习。

        SimpleDateFormat date = new SimpleDateFormat("yyyy.MM.dd");

        String receivedTime = date.format(new Date(System.currentTimeMillis()));

        receivedTime = receivedTime.replaceAll("//.", "");
        System.out.println(receivedTime);

 

顺便总结下replaceAll,split

java.lang.String split

String的split方法是直接按照给定的字符串对字符串进行拆分

例如

  1. String value = "a,b,c,d,e";
  2. String[] names = value.split(",");
  3. for(int i=0,n=names.length;i
  4. System.out.print(names[i]);

运行结果:

a b c d e

但是在做ip解析时发现出了问题,代码如下:

  1. String value = "209.242.1.1";
  2. String[] names = value.split(".");
  3. for(int i=0,n=names.length;i
  4. System.out.print(names[i]+" ");

理想的输出结果应该是219 242 1 1,结果什么都没有输出。

很奇怪哦。看一下split的方法签名吧。

  1. public String[] split(String regex)

这里的参数的名称是 regex ,也就是 Regular Expression (正则表达式)。这个参数并不是一个简单的分割用的字符,而是一个正则表达式:

  1. public String[] split(String regex, int limit)
  2. {
  3. return Pattern.compile(regex).split(this, limit);
  4. }

split 的实现直接调用的 Matcher 类的 split 的方法。“ . ”在正则表达式中有特殊的含义,因此我们使用的时候必须进行转义。

修改代码如下:

  1. String value = "209.242.1.1";
  2. String[] names = value.split("//.");
  3. for(int i=0,n=names.length;i
  4. System.out.print(names[i]+" ");

Replace 方法

用法 :  

  1. public void testReplace()
  2. {
  3. String A = "aaa bCskd dkkAik kdaFe";
  4. System.out.println(A.replace('a', '_'));
  5. }

结果为:___ bCskd dkkAik kd_Fe

此方法用来替换char字符,对字符串不能处理,A.replace('aaa', '=') 是错误的,但是 A.replace(“aaa”, “=”)却是可以的

  1. public void testReplace()
  2. {
  3. String A = "aaa bCskd dkkAik kaaaFe";
  4. System.out.println(A.replace("aaa", "="));
  5. }

结果为:= bCskd dkkAik k=Fe

可见 replace("","")与方法replaceAll("","")拥有差不多的功能,仔细看看差别。

是1.5之后才有的功能哦,但是 replaceAll却更强大。

  1. public void testReplace()
  2. {
  3. String A = "aaa bCskd dkkAik kaaaFe";
  4. System.out.println(A.replace(" ", ""));
  5. }

结果为aaabCskddkkAikkaaaFe

replaceAll可以将字符串内部的空格去掉

但是用replace(' ','')方法却不可以

replace(" ","")方法可以

另外一点

  1. public void testReplace()
  2. {
  3. String A = "aaa bCskd dkkAik kaaaFe";
  4. System.out.println(A.replaceAll("[a-z]", "="));
  5. }

结果为:=== =C=== ===A== ====F=

replaceAll可以用正则表达式,强大啊……

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值