Java有效方式从编码数字中提取

时间:2020-08-27 22:58:51

标签: java integer mod

我有一个编码的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;
} 

有什么更好的方法吗?对于二进制文件,我知道我可以使用位掩码,但是在这里我不确定。 任何想法或建议都会很有帮助。

1 个答案:

答案 0 :(得分:-1)

我敢打赌,转换为字符串是最快的方法(因为转换是由JVM一步完成的,因此避免了您正在做的所有数学运算)。然后,您可以选择字符(无需乘法)。

我找到了这些基准-https://www.happycoders.eu/java/how-to-convert-int-to-string-fastest/(我认为它们是正确的)。

当然,您应该运行自己的基准测试,以确认哪项性能最佳。