数字の桁数を検出しました。たとえば、数字329586
があります。6
私がやったことは、次のように、数値を文字列に解析し、文字列の長さを取得することです。
number.toString().length()
しかし、数字の桁を数える最速の方法はありますか? toString()
このメソッドを数回使用する必要があるため、使用するとパフォーマンスに影響を与える可能性があると思います。
ありがとう。
Math.floor(Math.log10(number) + 1)
// or just (int) Math.log10(number) + 1
例えば:
int number = 123456;
int length = (int) Math.log10(number) + 1;
System.out.println(length);
出力:
6
この自家製のソリューションはどうですか:
int noOfDigit = 1;
while((n=n/10) != 0) ++noOfDigit;
これを試して :
public class Main {
public static void main(String[] args) {
long num = -23;
int digits = 0;
if (num < 0)
num *= (-1);
if (num < 10 && num >= 0)
digits = 1;
else {
while(num > 0) {
num /= 10;
digits++;
}
}
System.out.println("Digits: " +digits);
}
}