Java数组截取如何实现?Java语言教程
public static int[] arraySub(int[] data, int start, int end)
? ? {
? ? ? ? int[] C = new int[end - start]; //新建數組C長度為start-end
? ? ? ? int j = 0;
? ? ? ? for (int i = start; i < end; i++)
? ? ? ? {
? ? ? ? ? ? < p = "" >
? ? ? ? ? ? ? ? C[j] = data[i];
? ? ? ? ? ? j++;
? ? ? ? }
? ? ? ? return C; //返回截取數組的地址
? ? }
?
?
只能從頭截取返回新數組
Arrays.copyOf(當前數組,截取下標)
?
?
int 轉換為 byte[]
? ? ? 這個實現起來比較簡單,先保存最低的 8 位到 byte 數組中,然后不斷的右移 8 位,每次保存低 8 位數據即可,參考代碼:(這里包含一個 int 到 byte 的轉換,轉換規則是截取 int 的最低 8 位作為 byte 值)
? ? public static byte[] intToBytes(int a){
? ? ? ? byte[] ans=new byte[4];
? ? ? ? for(int i=0;i<4;i++)
? ? ? ? ? ? ans[i]=(byte)(a>>(i*8));//截斷 int 的低 8 位為一個字節 byte,并存儲起來
? ? ? ? return ans;
? ? }
?
byte[] 轉換為 int
? ? ? 這個實現起來也比較簡單, 每次將 byte 值保存到 int 的最低 8 位,然后 int 左移 8 位,繼續保存新的 byte 值即可,參考代碼:
? ?
??
?
?
? ? public static int bytesToInt(byte[] a){
? ? ? ? int ans=0;
? ? ? ? for(int i=0;i<4;i++){
? ? ? ? ? ? ans<<=8;
? ? ? ? ? ? ans|=(a[3-i]&0xff);
? ? ? ? ? ? /* 這種寫法會看起來更加清楚一些:
? ? ? ? ? ? int tmp=a[3-i];
? ? ? ? ? ? tmp=tmp&0x000000ff;
? ? ? ? ? ? ans|=tmp;*/
? ? ? ? ? ? intPrint(ans);
? ? ? ? }
? ? ? ? return ans;
? ? }
? ??
? ? public static void main(String[] args) {
? ? ? ? int c=968523,d=-65423;
? ? ? ? byte[] ans=intToBytes(c);
? ? ? ? intPrint(c);
? ? ? ? for(int i=0;i<4;i++)
? ? ? ? ? ? bytePrint(ans[i]);
?
? ? ? ? int e=bytesToInt(ans);
? ? ? ? return;
? ? }
?
?
?
?
?
?
總結
以上是生活随笔為你收集整理的Java数组截取如何实现?Java语言教程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python数组截取
- 下一篇: Matlab 批量建文件夹