我的Textview是从SQLite获取数据,但我想让Textview显示如下:
************ 1234,而不是1234123412341234。
答案 0 :(得分:5)
String number = "grou353fp23g3qprwog9512";
String mask = number.replaceAll("\\w(?=\\w{4})", "*");
textView.setText(mask);
输出是******************* 9512
答案 1 :(得分:1)
public static String padLeading*(String data, int requiredLength){
StringBuffer sb = new StringBuffer();
if(data .length() > 4){
data .substring(data .length() - 4)
}
int numLeading* = requiredLength - data.length();
for (int i=0; i < numLeading*; i++){
sb.append("*");
}
sb.append(data);
return sb.toString();
}
此方法的优点是您可以根据需要更改*的数量。或者为了简单起见,可以确定字符串的最后四个字符,将其传入并执行:
if(data .length() > 4){
data .substring(data .length() - 4)
}
这个方法。
答案 2 :(得分:0)
String string = "1234567890";
if(string .length() > 4){
string .substring(string .length() - 4)
}
tv.setText(string);
输出:7890
答案 3 :(得分:0)
您可以在开头硬编码"*"
并从sqlite中提取信用卡号的最后4位数字并显示在文本视图中。
String lastFourDigits = extractLastFourDigits(); //I assume you get this
myTextView.setText("**** **** **** "+lastFourDigits);
答案 4 :(得分:0)
您想使用TransformationMethod 您可以使用PasswordTransformationMethod的来源作为指导,这样您就不会丢失原始字符串。
答案 5 :(得分:0)
您在这里。干净且可重复使用:
/**
* Applies the specified mask to the card number.
*
* @param cardNumber The card number in plain format
* @param mask The number mask pattern. Use # to include a digit from the
* card number at that position, use x to skip the digit at that position
*
* @return The masked card number
*/
public static String maskCardNumber(String cardNumber, String mask) {
// format the number
int index = 0;
StringBuilder maskedNumber = new StringBuilder();
for (int i = 0; i < mask.length(); i++) {
char c = mask.charAt(i);
if (c == '#') {
maskedNumber.append(cardNumber.charAt(index));
index++;
} else if (c == 'x') {
maskedNumber.append(c);
index++;
} else {
maskedNumber.append(c);
}
}
// return the masked number
return maskedNumber.toString();
}
通话示例:
System.out.println(maskCardNumber("1234123412341234", "xxxx-xxxx-xxxx-####"));
> xxxx-xxxx-xxxx-1234
System.out.println(maskCardNumber("1234123412341234", "##xx-xxxx-xxxx-xx##"));
> 12xx-xxxx-xxxx-xx34