将零添加到int java

时间:2019-05-08 15:29:34

标签: java string

如果它的等效字符串长度小于6,我想在整数前加零。类似于String.format。示例:

int e = 21;
System.out.println(String.format("%06d", e)); //000021
int e = 3564;
System.out.println(String.format("%06d", e)); //003564

我需要的是上述输入210000356400末尾加零。是否已经实施了某些工作,或者我需要自己编写代码?如果是这样,如何处理可变长度?

4 个答案:

答案 0 :(得分:4)

while (e < 100_000) e *= 10;

不言自明。我认为没有比这更简单的方法了。

编辑: 由于e可以为0,因此将上面的语句包装到一个函数中:

public static String pad(int input) {
  if (input == 0) return "000000";
  while (input < 100_000) input *= 10;
  return "" + input;
}

答案 1 :(得分:4)

如果想做类似what Dimitri suggests的事情,但又不想依赖外部库,则可以编写一些方法:

StringBuilder sb = new StringBuilder(6);
sb.append(e);
sb.append("000000", Math.min(sb.length(), 6), 6);
return sb.toString();

答案 2 :(得分:1)

如果可以使用StringUtils,则可以使用rightPad方法:

StringUtils.rightPad(String.valueOf(e), 6, "0");

答案 3 :(得分:1)

以下方法用提供的字符填充提供的字符串,直到达到字段宽度为止。

   public static String rightPad(String str, int fieldwidth, char c) {
      StringBuilder sb = new StringBuilder(str);
      while (fieldwidth > sb.length()) {
         sb.append(c);
      }
      return sb.toString();
   }

示例:要用两个零填充1234,请执行以下操作:

int v = 1234;
String padded = rightPad(Integer.toString(v), 6, '0');