【问题标题】:Java : string manipulation in numbers to six digitJava:数字中的字符串操作到六位数
【发布时间】:2016-06-22 06:18:41
【问题描述】:

如果数字为 123,则案例 1 结果: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);
    }
}

【问题讨论】:

  • 所以你要做的就是把开头的0去掉?
  • 它不仅删除开头的 0,还通过附加前导 0 来保持六位数,如果数字像 1231235 它必须相同,如果数字像 01123123 结果必须是 1123123

标签: java string format character


【解决方案1】:

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

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

O/P

023123

示例输入:00000110023123

样本输出:110023123

【讨论】:

    【解决方案2】:

    只需使用 Apache Common Lang 库:

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

    我认为这更具可读性。

    【讨论】:

      猜你喜欢
      • 2017-03-04
      • 2012-07-11
      • 2015-01-19
      • 1970-01-01
      • 2020-06-08
      • 2021-02-04
      • 2015-03-08
      • 2014-03-21
      • 1970-01-01
      相关资源
      最近更新 更多