[英]Java efficient way to extract from encoded number
我有一個編碼的 Java 整數:
1ABCDEFGH
ex1: 123561287
ex2: 184236230
我希望在第一個數字之后提取 2 位數字對。 在這種情況下,它將是:
ex1: 23, 56, 12, 87
ex2: 84, 23, 62, 30
我想出的天真的方法是反復除以 100 並用 mod 乘以 100 來找到那些 2 位數字。
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;
}
有沒有更好的方法來做到這一點? 對於二進制,我知道我可以使用位掩碼,但在這里我不確定。 任何想法或建議都會非常有幫助。
我敢打賭,轉換為 String 是執行此操作的最快方法(因為轉換是由 JVM 一步完成的……它避免了您正在執行的所有數學運算)。 然后你可以選擇字符(不需要乘法)。
我找到了這些基准——https: //www.happycoders.eu/java/how-to-convert-int-to-string-fastest/ (我認為它們是正確的)。
當然,您應該運行自己的基准測試來確認哪個性能最佳。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.