今日產品說要把中文名字處理隱藏一下,之前沒做過,但是有點懵。後來想着可以用正則表達式來處理,請直接見代碼。
(本處我的處理是隻展示第一個漢字,後面的全部隱藏,產品同意,也就這樣做了。實時上,真要處理爲只顯示姓氏,不顯示名字(因爲有複姓、少民姓氏)靠下面的幾段代碼是不夠的,如果你遇到那種需求,還是需要繼續琢磨琢磨的)
@Test
public void testList16() {
String name = "愛新覺羅·趙老大";
if (name.length() <= 1) {
System.out.println("*");
} else {
System.out.println(name.replaceAll("([\\u4e00-\\u9fa5]{1})(.*)", "$1" + createAsterisk(name.length() - 1)));
}
}
//生成很多個*號
public String createAsterisk(int length) {
StringBuffer stringBuffer = new StringBuffer();
for (int i = 0; i < length; i++) {
stringBuffer.append("*");
}
return stringBuffer.toString();
}