如何计算int值中的位数?

30i*_*0iT 4 java arrays

给出以下代码.

 int[] eg = {21,20,1,12,2}
 public numbers(int[] eg)
 {
     for(int i=0; i < eg.length; i++)
Run Code Online (Sandbox Code Playgroud)

我希望eg.length是5,其中eg[0]= 21 eg[1]= 20, eg[3]将= 1

我想检查例如[i]的每个元素,看看它是1位数还是2位数,我试着eg[0].length无济于事,但我是否正确假设它只适用于数组列表?

MCh*_*ker 15

将数字转换为String并获取长度.

int length = String.valueOf(eg[i]).length();
Run Code Online (Sandbox Code Playgroud)

要么

int length = Integer.valueOf(eg[i]).toString().length();
Run Code Online (Sandbox Code Playgroud)

使用此数学方程式(假设数组中的所有数据都是严格正数).

int length = (int)(Math.log10(eg[i])+1);
Run Code Online (Sandbox Code Playgroud)


Mar*_*oun 5

eg[i]类型为int,没有length属性。

可以通过多种方式判断数字的位数:

  • 编写自己的方法,该方法接受an int并保持除以10,直到数字达到0。

  • 使用数学属性:

    int length = (int) (Math.log10(number) + 1);

  • 将数字转换为String并使用其方法

  • @30iT 我很高兴它有帮助。不要介意投票,当你获得特权时,你就能获得。更重要的是您了解解决方案。 (2认同)