如何获取java中带前导零的整数位数?

时间:2015-03-21 18:18:30

标签: java integer number-formatting digit leading-zero

此问题包括前导零和数字的数字,通常计为十六进制(如09)。假设用户输入为整数,因为我将数字作为整数传递给某个函数。

例如

  • 如果用户输入5我应该得到1
  • 如果用户输入0005我应该 得到4
  • 如果用户输入09我应该得到2

(注)以下方法不起作用:

String.valueOf(integer).length()

2 个答案:

答案 0 :(得分:1)

用户输入可能已经是String,因此您只能使用String.length()。例如:

public static void main(String... args) {
    Scanner in = new Scanner(System.in);
    String number = in.next();
    int numDigits = number.length();
    System.out.println(numDigits);
}

如果输入是整数,则它不能有前导零。如果初始输入为零并且您在某个时刻将其转换为整数,则会丢失此信息。

答案 1 :(得分:1)

仅当您想要的数字是String时才有效。你没有0005整数,除非它不是一个整数,而是一个String。 您必须将这些数字保存为String而不是int才能使其正常工作。然后,您可以使用.length()方法