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