美国快递的信用卡号码格式

时间:2016-07-27 09:15:18

标签: android format credit-card

在我的Android应用中,我有这种格式Cat 对于信用卡号码,但当我插入15位数的AMEX时,我希望它显示为xxxx xxxx xxxx xxxx而是获得xxxx xxxx xxxx 1234。 我该如何解决这个问题?

我正在使用此代码:

xxxx xxxx xxx1 234

2 个答案:

答案 0 :(得分:0)

你正在使用一个简单的替换函数,它需要长度为4的倍数。当然,你可以改进格式化算法。但最简单的解决方案是确保输入字符串的长度。

在您的具体情况下,您可以使用x替换AMEX

String maskedAccountNumber = mActivity.maskedAccountNumber;
if (maskedAccountNumber.length() == 15)
    maskedAccountNumber = "x" + maskedAccountNumber;
textCardNumber.setText("Card Number: " + maskedAccountNumber.replaceAll("(.{4})(?!$)", "$1 "));

答案 1 :(得分:0)

最简单的方法就是使用 -

String acc = mActivity.maskedAccountNumber;
textCardNumber.setText("Card Number: xxxx xxxx xxxx " + acc.substring(acc.length() - 4));