如何在JAVA上测试Long是否以数字模式结束?

时间:2017-01-02 23:03:05

标签: java numbers

在JAVA,num和pattern上给出2个long,如何测试num是否以pattern结尾?

例如:

num = 7838123 pattern = 123

必须返回true,因为num以123(模式)结束。

num = 7838123 pattern = 120

必须返回false,因为num不以120结尾(模式)。

我已经将long转换为字符串并使用了endsWidth方法,但是,是否可以使用其他快速策略,如按位操作?

2 个答案:

答案 0 :(得分:2)

我同意@shmosel解决方案。但是,当第二个数字只有3位数时,它才是真的。

boolean compareTail(long one, long two) {
    int digits =(int) Math.log10(two)+1;
    long formated = one % ((long) Math.pow(10, digits));
    return formated == two;
 }

答案 1 :(得分:0)

Assuming the pattern is always 3 digits, you can use a simple mod:

boolean matches = (num % 1000 == pattern);