在Java中解析一个长数字

时间:2016-06-10 11:19:11

标签: java substring long-integer modulo

我想解析一个时间戳,一个像14655**56648041**这样的长数字。我想要从这个长数字中创建另外两个长数字,一个包含最后四个数字8041,第二个包含5664。我可以将数字转换为String,使用substring然后再将其转换为Long,但我想知道是否有更清洁的方法?我尝试使用%/但未成功。

2 个答案:

答案 0 :(得分:2)

最后4位为num % 1E4,之前的4位为(num % 1E8 - (num % 1E4)) / 1E4

答案 1 :(得分:1)

有。您可以通过在数字上执行模10000来获取最后四个数字:

long last4 = all%10000;

您可以进一步获得中间的四位数,首先除以10000并再次执行模数:

long midl4 = (all/10000)%10000;

或者把它们放在一起:

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