获取整数中位数的方法?
有没有比此方法更整洁的方法来获取 int 中的位数?
int numDigits = String.valueOf(1000).length();
有没有比此方法更整洁的方法来获取 int 中的位数?
int numDigits = String.valueOf(1000).length();
您基于String的解决方案是完全可以的,没有什么“不整洁”的。你必须意识到,从数学上讲,数字没有长度,也没有数字。长度和数字都是特定基数(即字符串)中数字的物理表示的属性。
基于对数的解决方案在内部执行的操作与基于 String 的解决方案(某些)执行的操作相同,并且可能(微不足道地)更快地完成,因为它只产生长度并忽略数字。但我实际上不会认为它在意图上更清晰 - 这是最重要的因素。
对数是你的朋友:
int n = 1000;
int length = (int)(Math.log10(n)+1);
注意:仅对 n > 0 有效。