首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Java 字節數組尾部零值截取:逆序查找首個非零索引複製新數組

     編輯:程式設計綜合問答

場景

處理字節數組時尾部混入大量 `0x00`,需截取至最後一個非零字節。

實現代碼

public static byte[] trimTrailingZeros(byte[] data) {
    int end = data.length - 1;
    while (end >= 0 && data[end] == 0) end--;
    if (end < 0) return new byte[0]; // 全零
    byte[] result = new byte[end + 1];
    System.arraycopy(data, 0, result, 0, end + 1);
    return result;
}

關鍵點

  • 逆序查找首個非零索引 `end`,時間 O(n)。
  • `System.arraycopy` 原生複製,效率最高。
  • 若數組極大且頻繁調用,考慮維護有效長度變量避免重複掃描。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved