问题描述
- java实现数字替换成*,求大神指点
-
我现在要实现150****8558,这样的样式,我是新手,还请大神指点,最好是贴上代码。谢谢!
解决方案
/**
* 对一个字符串,指定字符“段”替换成对应的字符
* @param resStr 字符串
* @param begin 开始
* @param end 结束
* @param replaceStr 替换字符
* @return
*/
private static String strReplace(String resStr, int begin , int end, String replaceStr) {
//判断是否满足条件
if(resStr == null || resStr.length()<end)
return "";
//转为为String数组
String resStrs[] = {resStr.substring(0,begin),resStr.substring(begin,end),
resStr.substring(end,resStr.length())};
//对需要替换的字符进行替换
resStrs[1] = resStrs[1].replaceAll(".",replaceStr);
return resStrs[0]+resStrs[1]+resStrs[2];
}
解决方案二:
public static String formatNumber(String number, int start, int end, String format) {
if (TextUtils.isEmpty(number)) {
return "";
}
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append(number.substring(0, start));
for (int i = start; i <= end; i++) {
stringBuilder.append("*");
}
stringBuilder.append(number.substring(end + 1, number.length()));
return stringBuilder.toString();
}
解决方案三:
public static String getEncrypt(String num) {
StringBuffer buffer = new StringBuffer();
for (int i = 0; i < num.length(); i++) {
if (i < 3 || i > 7) {
buffer.append(num.charAt(i));
} else {
buffer.append('*');
}
}
System.out.println(buffer.toString());
return buffer.toString();
}
时间: 2024-08-31 02:35:49