Маскировка ввода для номера кредитной карты в 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);
}

}
Другие вопросы по тегам