闲聊时候机油问了一个问题如下:
如何将下面字符串中的空格替换成一个‘,’号。
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(" ","");
我们要的结果就出来了.
当然,能用正则表达式一行代码能搞定的东西为什么要用三行?
额,这就叫作。