2016-07-27 49 views
-3

在我的Android應用程序,我有信用卡號碼格式xxxx xxxx xxxx xxxx 但是當我插入AMEX與15個數字,我希望它顯示爲xxxx xxxx xxxx 1234相反,我得到xxxx xxxx xxx1 234。 我該如何解決這個問題?信用卡號碼格式表達

我使用這個代碼:

textCardNumber.setText("Card Number: " + mActivity.maskedAccountNumber.replaceAll("(.{4})(?!$)", "$1 ")); 
+0

您應該添加您用於顯示數字的代碼。 – tynn

+0

我剛剛做了,謝謝 – Katherina

回答

0

您使用一個簡單的替換功能,預計長度的數字是4的倍數。您可以只提高,當然您的格式算法。但最簡單的解決方案是確保輸入字符串的長度。

在特定情況下,你可能只是離開墊輸入與x美國運通

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

這幫了,謝謝! – Katherina

0

最簡單的方法是隻使用 -

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

什麼,如果我使用 maskedAccountNumber =「XXXXXXXXXXX」+ MainActivity.getInstance()。mCardNumber; 但我想要

xxxx xxxx xxx1 234而不是xxxx xxxx xxxx 1234?