架構師成長記_第二週_07_2020.10.06
商品評價之使用者資訊脫敏實現
脫敏工具類
package com.beyond.utils;
/**
* 通用脫敏工具類
* 可用於:
* 使用者名稱
* 手機號
* 郵箱
* 地址等
*/
public class DesensitizationUtil {
private static final int SIZE = 10;
private static final String SYMBOL = "*";
public static void main(String[] args) {
String name = commonDisplay("吃就完事");
String mobile = commonDisplay("123456789");
String mail = commonDisplay("beyondnothing@88.com");
String address = commonDisplay("山西省晉中市山西農業大學");
System.out.println(name);
System.out.println(mobile);
System.out.println(mail);
System.out.println(address);
}
/**
* 通用脫敏方法
* @param value
* @return
*/
public static String commonDisplay(String value) {
if (null == value || "".equals(value)) {
return value;
}
int len = value.length();
int pamaone = len / 2;
int pamatwo = pamaone - 1;
int pamathree = len % 2;
StringBuilder stringBuilder = new StringBuilder();
if (len <= 2) {
if (pamathree == 1) {
return SYMBOL;
}
stringBuilder.append(SYMBOL);
stringBuilder.append(value.charAt(len - 1));
} else {
if (pamatwo <= 0) {
stringBuilder.append(value.substring(0, 1));
stringBuilder.append(SYMBOL);
stringBuilder.append(value.substring(len - 1, len));
} else if (pamatwo >= SIZE / 2 && SIZE + 1 != len) {
int pamafive = (len - SIZE) / 2;
stringBuilder.append(value.substring(0, pamafive));
for (int i = 0; i < SIZE; i++) {
stringBuilder.append(SYMBOL);
}
if ((pamathree == 0 && SIZE / 2 == 0) || (pamathree != 0 && SIZE % 2 != 0)) {
stringBuilder.append(value.substring(len - pamafive, len));
} else {
stringBuilder.append(value.substring(len - (pamafive + 1), len));
}
} else {
int pamafour = len - 2;
stringBuilder.append(value.substring(0, 1));
for (int i = 0; i < pamafour; i++) {
stringBuilder.append(SYMBOL);
}
stringBuilder.append(value.substring(len - 1, len));
}
}
return stringBuilder.toString();
}
}
專案實現
ServiceImpl 中
for (ItemCommentVO vo : list) {
vo.setNickname(DesensitizationUtil.commonDisplay(vo.getNickname()));
}
相關文章
- 架構師成長記_第三週_05_2020.11.08架構
- App架構師成長路線APP架構
- 網站架構師成長之路網站架構
- 第二週 架構架構
- 架構師課程學習筆記-第二週知識點架構筆記
- PHP 系統架構師成長之路PHP架構
- 移動端架構師_Android架構師成長體系課程架構Android
- 架構師成長之路之限流漫談架構
- 阿里P7架構師的成長之路阿里架構
- 《架構師成長之路》連載之NO.1架構
- 《架構師成長之路》連載之NO.0架構
- 《架構師成長之路》連載之NO.5架構
- 《架構師成長之路》連載之NO.4架構
- 鏈家網前端總架構師楊永林:我的8年架構師成長之路前端架構
- 架構師成長系列 | 雲原生時代的 DevOps 之道架構dev
- 怎樣成長為優秀的軟體架構師?架構
- 從菜鳥碼農到Java架構師——成長指南Java架構
- 【架構師成長必備】如何閱讀一個開源專案的原始碼?【石杉的架構筆記】架構原始碼筆記
- 物聯網架構成長之路架構
- 如何成為一個架構師架構
- 架構師成長系列:如何做高層架構設計(方法經驗總結,純乾貨)架構
- 三年成為架構師架構
- 如何成為一名架構師架構
- 架構師成長之路-純乾貨系列:什麼是架構和架構分類(程式設計師突破內卷大法)說人話接地氣架構程式設計師
- 雲架構師:職責、技能以及如何成為一名雲架構師架構
- 資深架構師的養成計劃架構
- 架構學習筆記系列四——架構師軟文架構筆記
- 阿里P6架構師的成長之路,我只用了5個月.....阿里架構
- 一線網際網路企業資深架構師成長路線圖架構
- PHP架構師成長必須做些什麼?你要準備些什麼?PHP架構
- 七牛首席架構師李道兵:在開源世界裡逼自己成長架構
- 後端成長之路:從菜鳥到架構後端架構
- 架構師成長系列:高層架構設計之落地設計第一步(方法經驗總結)架構
- 架構師修煉之道(二)——架構?設計?架構師?架構
- 《Java架構師成長直通車》免費直播課開講啦(4月28號)Java架構
- 為什麼你總成為不了架構師?架構
- Java程式設計師如何成為優秀的架構師Java程式設計師架構
- 每個程式設計師都應該成為架構師程式設計師架構