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

Posted

技术标签:

【中文标题】如何在java中获取带有前导零的整数中的位数?【英文标题】:How to get number of digits in an integer with leading zeros in java? 【发布时间】:2015-03-21 18:18:29 【问题描述】:

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

例如

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

(注意)以下方法无效:

String.valueOf(integer).length()

【问题讨论】:

【参考方案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);

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

【讨论】:

我已经编辑了我的问题。假设输入将是整数。 如果输入是整数,则不能有前导零。如果初始输入为零并且您在某个时候将其转换为整数,则您会丢失此信息。 是的,所写的问题现在格式错误。前导零只是字符串的一个特征。【参考方案2】:

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

【讨论】:

以上是关于如何在java中获取带有前导零的整数中的位数?的主要内容,如果未能解决你的问题,请参考以下文章

如何格式化带有前导零的Java字符串?

如何将带有前导零的数字字符串转储为 yaml-cpp 中的有效 yaml 字符串?

如何在 JavaScript 中输出带有前导零的数字? [复制]

在 bash 中,如何添加带前导零的整数并维护指定的缓冲区

Excel:如何像数据透视表一样对一系列带有前导零的数字进行排序?

格式字符串,带前导零的整数