【问题标题】:How to padded strings with zero`s in java?如何在java中用零填充字符串?
【发布时间】:2019-11-21 00:58:34
【问题描述】:

根据要求,我想根据以下格式获得唯一的参考。

参考应该是 = 15 个字符 日期格式(yyyy-MM--dd) + ZERO`s + Id ; 前 1 = 201911070000181 ex 2 = 201911070000090

在代码示例中,我将日期显示为字符串,将 ID 显示为字符串,有人可以帮我吗? 谢谢。

Date today = Utils.getCurrentDateByTimeZone(environment.getProperty(TIME_ZONE));
    String pattern = "yyyyMMdd";
    SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern);
    String date = simpleDateFormat.format(today);
    String merchantId = String.valueOf(transactionData.getMerchant().getMerchantId());

【问题讨论】:

    标签: java string padding


    【解决方案1】:

    您可以使用字符串格式来做到这一点。

    String.format("%s%07d", date, id);
    // if date="20191107" and id=181, this will give 201911070000181
    

    这段代码的作用是,它在 id 之前附加 0,直到它的长度为 7。(第一部分是日期,我假设日期总是 8 个字符长。)如果 id 是字符串,它将不起作用,所以我建议将其转换为整数。

    【讨论】:

      【解决方案2】:

      您始终可以使用StringBuilder

      StringBuilder sb = new StringBuilder(15);
      sb.append(date);
      for (int i = date.length() ; i < 15 - merchantId.length(); i++) {
          sb.append('0');
      }
      sb.append (merchantId);
      String reference = sb.toString();
      

      【讨论】:

        猜你喜欢
        • 2020-03-16
        • 1970-01-01
        • 1970-01-01
        • 2010-09-28
        • 2011-12-02
        • 2011-05-27
        • 2018-11-14
        • 2010-09-24
        相关资源
        最近更新 更多