Ich habe die Anzahl der Ziffern einer Zahl ermittelt. Beispielsweise hat 329586
6
Ziffern.
Was ich getan habe, ist einfach die Anzahl der Zeichenfolge zu analysieren und die Länge der Zeichenfolge zu erhalten, wie:
number.toString().length()
Aber gibt es eine schnellste Möglichkeit, Ziffern auf einer Zahl zu zählen? Ich muss diese Methode mehrmals verwenden, daher denke ich, dass die Verwendung von toString()
die Leistung beeinflussen kann.
Vielen Dank.
Math.floor(Math.log10(number) + 1)
// or just (int) Math.log10(number) + 1
Zum Beispiel:
int number = 123456;
int length = (int) Math.log10(number) + 1;
System.out.println(length);
AUSGABE:
6
wie wäre es mit dieser hausgemachten Lösung:
int noOfDigit = 1;
while((n=n/10) != 0) ++noOfDigit;
Versuche dies :
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);
}
}