2016-06-10 1 views
0

Je veux analyser un horodatage, un nombre long comme 14655**56648041**. Je veux créer à partir de ce nombre long deux autres nombres longs, un avec les quatre derniers nombres 8041 et le second avec 5664. Je peux convertir le nombre en chaîne, utiliser la sous-chaîne, puis le convertir à nouveau, mais je veux savoir s'il y a une manière plus propre? J'ai essayé d'utiliser % et / mais n'ai pas réussi.Analyser un nombre long en Java

+0

Juste pour info, vous allez avoir des tonnes de downvotes pour "pas assez de recherche". Je vais upvote, mais cela ne peut que faire beaucoup. – RobotKarel314

+1

Les numéros que vous tirez de ce numéro long 14655 ** 56648041 ** vont-ils toujours se trouver entre les *? Je ne suis pas sûr que ce que vous essayez d'accomplir ici soit entièrement clair. –

+0

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

Répondre

1

Il y a. Vous pouvez obtenir les quatre derniers numéros en effectuant un modulo 10000 sur le nombre:

long last4 = all%10000; 

Vous pouvez en outre obtenir les quatre chiffres du milieu de première division par 10000 et effectuer à nouveau modulo:

long midl4 = (all/10000)%10000; 

Ou mettre tous ensemble:

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

Les 4 derniers chiffres sont num % 1E4 et les quatre précédents sont (num % 1E8 - (num % 1E4))/1E4