Return 格式类似于信用卡号的字符串

Return String formatted like a credit card number

我有一个简单的 cardNumber 字符串,我正在尝试为我的 System.out.ln

设置格式

这是我的System.out.ln调用的方法

public String getCardNumber() 
{
    cardNumber = "0000 0000 0000 0000";
    return cardNumber;
}

但 cardNumber 的组成部分 = "0000 0000 0000 0000";是我想要格式化的,所以 12345678912345752 变成 1234 5678 9124 5752

我看过 substring() 之类的东西,但我看不到一种简单的方法来遍历每 4 个字符并自动插入 space。

您只需手动编辑您的字符串

        String input = "1234567891245752";

        StringBuilder result = new StringBuilder();
        for (int i = 0; i < input.length(); i++) {
           if (i % 4 == 0 && i != 0) {
              result.append(" ");
            }

           result.append(input.charAt(i));
        }

        System.out.println(result.toString());

看看我们在这里做的是遍历您的字符串,并在每 4 个字符之间添加一个空格。

要在 16 个字符的字符串中每 4 个字符后添加一个 space,请执行此操作。

String number = "1234123412341234";
number = number.substring(0,3) + " " + number.substring(4, 7) + " " + number.substring(8, 11) + " " + number.substring(12, number.length()); 

试试下面的方法:

public String getNumberString() {
    DecimalFormatSymbols symbols = new DecimalFormatSymbols();
    symbols.setGroupingSeparator(' ');
    DecimalFormat fmt = new DecimalFormat("0000,0000,0000,0000", symbols);
    return fmt.format(this.number);
}