Entfernen von Ziffern aus einer Zahl im Java
Wie Entferne ich die erste Ziffer der ganzen Zahl?
Meine Eingabe ist ein integer-Wert (z.B. i = 123456789).
Dann möchte ich entfernen, ist die erste Ziffer, so dass ich gleich 23456789.
- Siehe auch Zurück erste Ziffer der Ganzzahl
Du musst angemeldet sein, um einen Kommentar abzugeben.
versuchen, diese
%=
. Auch, müssen Sie möglicherweise nicht die ersten(int)
Stimmen.Hier ist ein Weg, es zu tun:
String
int
Code:
Ausgabe:
Hinweis: Diese kann getan werden, in einer Linie mit
Edit:
Zu handhaben negativ-Fall, überprüfen Sie, ob Zahl positiv oder integer:
Wenn Sie möchten, um zu vermeiden, die Umwandlung von Strings, finden Sie die hohe Ziffer und subtrahiere es.
floor(log10(x) + 1)
zurückkehren würde, die Anzahl der Ziffern, die es hat, vorausgesetzt, x > 0.Hier ist die one-line, rein numerische Lösung:
Alternativer Ansatz:
Ich glaube, ich erinnere mich an die string-Kostenlose version der ... obwohl ich völlig einverstanden mit @Christian so wie ich es tun würde...
HINWEIS: @Darren Gilroy darauf hingewiesen, muss man berücksichtigen, negative und null spocially, und meine Funktion nicht, dies zu tun.
Natürlich
%
ist eine bessere Lösung auch.Armen profiling-Versuch:
Durchlaufen der oben genannten Funktion, ohne die
println
für 20,000,000,000 wiederholtfor
Schleife:Das gleiche mit Christian weit einfacher zu verstehen und perfekt funktionsfähige version, aber nur für 200,000,000 wiederholt (weil ich faul bin und müde von warten):
So könnte man argumentieren, dass die Konstruktion der String-Objekte ist wohl eine Verlangsamung von etwa 200×, aber ist das nicht ein wirklich fein abgestimmtes profiling-set-up.
Wenn Sie möchten, gehen Sie für einfachere Methoden und ohne Verwendung
String
, dann hier ist mein einfaches nehmen:int
durch10^n
.n
ist die Anzahl der Ziffern.Beispielsweise
Und Sie würde erfordern, diese Methode: