2016-06-10 34 views
0

Ich möchte einen Zeitstempel analysieren, eine lange Zahl wie 14655**56648041**. Ich möchte aus dieser Long-Nummer zwei weitere Long-Nummern erstellen, eine mit den letzten vier Ziffern 8041 und die zweite mit 5664. Ich kann die Zahl in String umwandeln, Teilstring verwenden und es dann wieder in Long konvertieren, aber ich möchte wissen, ob es einen saubereren Weg gibt? Ich versuchte, % und / zu verwenden, aber ist nicht erfolgreich.Parse eine lange Zahl in Java

+0

Nur zur Info, du wirst Tonnen von Downvotes für "nicht genug Forschung" bekommen. Ich werde upvote, aber das kann nur so viel tun. – RobotKarel314

+1

Sind die Zahlen, die Sie von dieser langen Nummer 14655 ** 56648041 ** immer zwischen den * ziehen? Ich bin mir nicht sicher, dass es völlig klar ist, was Sie hier erreichen wollen. –

+0

'n1 = num% 10000;' 'n2 = (num/10000)% 10000;' –

Antwort

1

Es gibt. Sie können die letzten vier Zahlen erhalten, indem eine Modulo 10000 auf die Anzahl der Durchführung:

long last4 = all%10000; 

Sie können weiterhin die mittleren vier Ziffern durch erste Teilungs erhalten durch 10000 und die wieder Modulo ausführen:

long midl4 = (all/10000)%10000; 

Or Dass sie alle zusammen:

long all = 1465556648041L; 

long last4 = all%10000; 
long midl4 = (all/10000)%10000; 

System.out.println("all="+all); 
System.out.println("last4="+last4); 
System.out.println("midl4="+midl4); 

jDoodle demo

2

Die letzten 4 Stellen sind num % 1E4 und die vier bisherigen sind (num % 1E8 - (num % 1E4))/1E4