Java:数字到六位数的字符串操作

时间:2016-03-08 10:37:33

标签: java string format character

案例1如果数字是123结果:000123
情况2如果编号为00123123结果:123123
情况3如果数字是10231239结果:10231239
案例4如果编号为01231239结果:1231239

我所尝试的是下面但是需要更好的解决方案

public static void main(String[] args)
{
    String number = "0023213";
    number = number.trim();
    String result;
    if(number.length() < 6)
    {
        result = String.format("%06d", Integer.parseInt(number));
        System.out.println(result);
    }
    else if (number.trim().length()>6)
    {
        result = number.replaceFirst("^0+(?!$)", "");
        result = String.format("%06d", Integer.parseInt(result));
        System.out.println(result);
    }
}

2 个答案:

答案 0 :(得分:0)

这个适用于你(else部分的代码)。只要后面有6位数字,就删除前导零。

public static void main(String[] args) {
    String s = "0023123";
    System.out.println(s.replaceAll("^0+(?=\\d{6})", ""));
}

O / P

023123

示例输入:00000110023123

样本输出:110023123

答案 1 :(得分:0)

只需使用Apache Common Lang库:

String str = "1123456";
str = StringUtils.leftPad(StringUtils.stripStart(str, "0"), 6, "0");

我认为这更具可读性。