返回字符串格式化为信用卡号

时间:2015-02-25 01:49:01

标签: java string formatting

我有一个简单的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个字符并自动插入一个空格。

3 个答案:

答案 0 :(得分:7)

您只需手动编辑字符串

        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个字符之间添加一个空格。

答案 1 :(得分:2)

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

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

答案 2 :(得分:1)

尝试以下方法:

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