【问题标题】:Credit card number format for American express美国运通的信用卡号格式
【发布时间】:2016-12-01 05:06:18
【问题描述】:

在我的 android 应用程序中,我有这种格式 xxxx xxxx xxxx xxxx 对于信用卡号码,但是当我插入 15 位数字的 AMEX 时,我希望它显示为 xxxx xxxx xxxx 1234 相反,我得到 xxxx xxxx xxx1 234。 我该如何解决这个问题?

我正在使用此代码:

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

【问题讨论】:

  • 你应该添加你用来显示号码的代码。
  • 我刚刚做了,谢谢

标签: android format credit-card


【解决方案1】:

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

在您的特定情况下,您可以只为 AMEX 使用 x 填充输入

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

【讨论】:

    【解决方案2】:

    最简单的方法就是使用 -

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-08-02
      • 2018-02-23
      • 2010-10-14
      • 2011-08-16
      • 1970-01-01
      • 2020-12-30
      • 2016-08-18
      相关资源
      最近更新 更多