it-swarm.com.de

Schnellster Weg, um die Anzahl der Ziffern einer Zahl zu erhalten?

Ich habe die Anzahl der Ziffern einer Zahl ermittelt. Beispielsweise hat 3295866 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.

9
BloodShura
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
36
Eng.Fouad

wie wäre es mit dieser hausgemachten Lösung:

int noOfDigit = 1;
while((n=n/10) != 0) ++noOfDigit;
7
TravellingGeek

Versuche dies :

Arbeitsbeispiel

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);
    }
}
0
Zelldon