Java 字串遮罩範例。
在查詢一些機敏資料如身份證ID,姓名,地址,電話號碼,信用卡,銀行帳戶等時,為了避免這些個資被不肖人員利用,通常會在輸出時進行遮罩處理,也就是用特殊符號取代原本的一些字,下面是遮罩的方法範例。
public class Main {
public static void main(String[] args) {
String id = "A123456789";
System.out.println(mask(id, 2, 5, '*')); // A1*****789
System.out.println(mask(id, 5, 10, '*')); // A1234*****
System.out.println(mask(id, -1, 4, '#')); // ####456789
}
/**
* 字串遮罩
* @param text 原始字串
* @param start 遮罩起始位置index
* @param length 遮罩長度
* @param maskSymbol 遮罩符號
* @return 遮罩過的字串
*/
private static String mask(String text, int start, int length, char maskSymbol) {
if (text == null || text.isEmpty()) {
return "";
}
if (start < 0) {
start = 0;
}
if (length < 1) {
return text;
}
StringBuilder sb = new StringBuilder();
char[] cc = text.toCharArray();
for (int i = 0; i < cc.length; i++) {
if (i >= start && i < (start + length)) {
sb.append(maskSymbol);
} else {
sb.append(cc[i]);
}
}
return sb.toString();
}
}
參考:
2 則留言:
請問你這個字串遮罩程式 , 我在ECLIPSE中執行會出現ERROR
第6,23行出現紅色XX
訊息欄出現下列訊息
The method main cannot be declared static; static methods can only be declared in a static or top level type
上面說不能使用STATIC , 但是移除後會出現要使用STATIC
可以請教是哪邊出問題嗎?
你如果要複製貼上的話只能貼下面的mask()方法,上面的main()方法只是要演示執行的效果用的不要貼到你的程式碼裡。
張貼留言