網頁

2019/12/23

Java 字串遮罩範例 String mask example

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 則留言:

  1. 請問你這個字串遮罩程式 , 我在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
    可以請教是哪邊出問題嗎?

    回覆刪除
  2. 你如果要複製貼上的話只能貼下面的mask()方法,上面的main()方法只是要演示執行的效果用的不要貼到你的程式碼裡。

    回覆刪除