在JAVA,num和pattern上给出2个long,如何测试num是否以pattern结尾?
例如:
num = 7838123 pattern = 123
必须返回true,因为num以123(模式)结束。
num = 7838123 pattern = 120
必须返回false,因为num不以120结尾(模式)。
我已经将long转换为字符串并使用了endsWidth方法,但是,是否可以使用其他快速策略,如按位操作?
答案 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);