天天看点

java替换字符串中某些字符的用法一二

闲聊时候机油问了一个问题如下:

如何将下面字符串中的空格替换成一个‘,’号。

3 0 1 NULL 162 122 797 502 137 NULL NULL 16777215 1 [email protected]@[email protected]@[email protected]@134|-2147483640|-12|宋体|0|9|[email protected]|-2147483640|-12|宋体|0|9|[email protected]|-2147483640|-12|宋体|0|9|[email protected]@[email protected]@-2147483643 NULL

ok,下面来一手思路了。

想法1.

这个问题初一拿出来,第一想到的正则表达式。

String ss ="3 0 1 NULL 162 122 797 502 137 NULL NULL 16777215 1 [email protected]@[email protected]@[email protected]@134|-2147483640|-12|宋体|0|9|[email protected]|-2147483640|-12|宋体|0|9|[email protected]|-2147483640|-12|宋体|0|9|[email protected]@[email protected]@-2147483643 NULL";

System.out.println(ss.replaceAll("\\s+",","));

这想法中规中矩也能实现我们的梦想。那有没有别的法子呢?于是有了下面这个

想法2

第一步,用‘,’+一个空格替换原有的空格

ss = ss.replaceAll(" ",", ");

这个时候出来的结果是:

3, , , 0, , , 1, , , NULL, , , , 162, 122, 797, 502, 137, NULL, , , , NULL, , , , 16777215, , , , 1, , , [email protected]@[email protected]@[email protected]@134|-2147483640|-12|宋体|0|9|[email protected]|-2147483640|-12|宋体|0|9|[email protected]|-2147483640|-12|宋体|0|9|[email protected]@[email protected]@-2147483643, , , , NULL

然后呢用 “”替换掉 一个空格+“,”

ss = ss.replaceAll(" ,","");

结果

3, 0, 1, NULL, 162, 122, 797, 502, 137, NULL, NULL, 16777215, 1, [email protected]@[email protected]@[email protected]@134|-2147483640|-12|宋体|0|9|[email protected]|-2147483640|-12|宋体|0|9|[email protected]|-2147483640|-12|宋体|0|9|[email protected]@[email protected]@-2147483643, NULL

最后用”” 替换所有的” “空格

ss = ss.replaceAll(" ","");

我们要的结果就出来了.

当然,能用正则表达式一行代码能搞定的东西为什么要用三行?

额,这就叫作。