两个问题,第一,用循环遍历的方式替换的是可行的,但是不要用replace,而是把字符串分割成字符数组后直接给字符数组指定下标替换为*就可以了
第二,这么弄确实浪费资源,一般来说都使用正则匹配替换
public String replace(char oldChar, char newChar) {
if (oldChar != newChar) {
return new String(buf, true);
}
}
return this;
replace如果参数不一样的话,返回的是个新字符串,你那样写的话,永远是在替原来的字符串,所以最后相当于 原手机号把charAt(6)的都换成*了
字符串截取首3位,尾部4位,然后中间输入4个星,连起来就好了