我有一个编码的Java整数:
1ABCDEFGH
ex1: 123561287
ex2: 184236230
我希望在第一个数字之后提取2个数字对。在这种情况下,它将是:
ex1: 23, 56, 12, 87
ex2: 84, 23, 62, 30
我天真的想法是反复地除以100,然后用mod乘100来找到那两个数字。
List<Integer> find2DigitGroups(int number) {
// handle scenario when number is not of the format 1ABCDEFGH
...
List<Integer> result = new ArrayList<>();
result.add(number%100);
number/=100;
result.add(number%100);
number/=100;
result.add(number%100);
number/=100;
result.add(number%100);
number/=100;
return result;
}
有什么更好的方法吗?对于二进制文件,我知道我可以使用位掩码,但是在这里我不确定。 任何想法或建议都会很有帮助。
答案 0 :(得分:-1)
我敢打赌,转换为字符串是最快的方法(因为转换是由JVM一步完成的,因此避免了您正在做的所有数学运算)。然后,您可以选择字符(无需乘法)。
我找到了这些基准-https://www.happycoders.eu/java/how-to-convert-int-to-string-fastest/(我认为它们是正确的)。
当然,您应该运行自己的基准测试,以确认哪项性能最佳。