簡體   English   中英

Java從編碼數字中提取的有效方法

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM