Маскировка ввода для номера кредитной карты в java
Я хочу замаскировать свою форму ввода для номера кредитной карты, как это
Введите номер вашей кредитной карты: 411111 **** 1111
так как ввод пароля, но только частично.
Я использую Icefaces для каркаса. если я использую ace: maskedEntry, то меняю только формат данных, а не текст, который мне нужно ввести.
заранее спасибо и извините за мой плохой английский.
0 ответов
Если вы хотите замаскировать номер кредитной карты, вы можете использовать метод подстроки java.
public class MaskCard{
public static void main(String[] args) {
String cardNum = "4111110065031111";
final int STARTLENGTH = 6; //first digit of card you don't want to mask
final int ENDLENGTH = 4; //last digit of card you don't want to mask
int maskedLength = cardNum.length() - (STARTLENGTH + ENDLENGTH);
System.out.println(maskedLength);
StringBuilder sb = new StringBuilder();
for (int i = 0; i < maskedLength; i++) {
sb.append("*");
}
String maskedCard = cardNum.substring(0, STARTLENGTH) + sb + cardNum.substring(cardNum.length() - ENDLENGTH, cardNum.length());
System.out.println(maskedCard);
}
}