|
@@ -142,3 +142,22 @@ fun String.toAddrPort(): AddrPort? {
|
|
|
}
|
|
|
return null
|
|
|
}
|
|
|
+
|
|
|
+/**
|
|
|
+ * 隐藏字符串中间一部分字符,用于部分信息的脱敏显示。
|
|
|
+ *
|
|
|
+ * @param hs 替代被隐藏字符的字符,默认为 '*'。
|
|
|
+ * @param pre_len 保留的前缀字符个数,默认为 2。
|
|
|
+ * @param suf_len 保留的后缀字符个数,默认为 2。
|
|
|
+ * @return 隐藏中间部分字符后的字符串。当字符串长度小于等于前缀长度和后缀长度之和时,原样返回字符串。
|
|
|
+ */
|
|
|
+fun String.hide(hs: Char = '*', pre_len: Int = 2, suf_len: Int = 2): String {
|
|
|
+ val j_slen = this.length
|
|
|
+ if (j_slen <= pre_len + suf_len) return this
|
|
|
+ val j_midlen = j_slen - pre_len - suf_len
|
|
|
+ val j_shide = CharArray(j_slen)
|
|
|
+ for (j_i in 0 until pre_len) j_shide[j_i] = this[j_i]
|
|
|
+ for (j_i in pre_len until pre_len + j_midlen) j_shide[j_i] = hs
|
|
|
+ for (j_i in j_slen - suf_len until j_slen) j_shide[j_i] = this[j_i]
|
|
|
+ return String(j_shide)
|
|
|
+}
|