2017-11-19 2 views
-2

は、私はこのバイト配列からすべてのn番目のバイトを削除するにはどうすればよいバイト配列からnバイトごとにどのように削除するのですか?

byte[] bytes = {69, 121, 101, 45, 62, 118, 101, 114, 195, 61, 101, 98}; 

のようなバイト配列を持っていると言いますか? n = 3の場合、結果は3の倍数でなければなりません(インデックス0 => 3,6,9 12などから始まります)。だから45、101、61 .. nth。

System.arraycopyを新しいホルダー配列で使用する必要がありますか?

+0

あなたはバイト配列から何かを削除することはできません。特定のインデックスに格納されている値を別の値で置き換えることができます。新しい配列を作成したい場合は、いくつかの配列を除くすべての元の値をそのまま使用してください。ループ、除算、およびモジュロ演算子について知っていれば、これは十分に簡単なはずです。何かを試してください。 –

+0

私たちにいくつかの努力とbtwを示してください。これは有効なバイト配列でさえありません。 – Flown

+1

'195'は' byte'配列に追加できません。バイトの最大値は '127'です。 –

答えて

1

まず、あなたがコーディングにいくつかの努力を入れて、私達にあなたのように私たちはあなたを助けることができますしようとした結果を表示しようとする必要があります...

このコードは、n番目の要素なしで、あなたに新しい配列を与える:

byte[] bytes = { 69, 121, 101, 45, 62, 118, 101, 114, 127, 61, 101, 98 }; 
    int n = 3; 
    List<Byte> byteList = new ArrayList<Byte>(); 

    for (int i = 0, j = n; i < bytes.length; i++) { 
     if (i == j) { 
      j += n; 
      continue; 
     } 
     byteList.add(bytes[i]); 
    } 

    // if you want to return the code to a byte[] 
    byte[] newByte = new byte[byteList.size()]; 
    for (int i = 0; i < byteList.size(); i++) { 
     System.out.println(byteList.get(i)); 
     newByte[i] = byteList.get(i); 
    } 

出力例:

69 
121 
101 
62 
118 
114 
127 
101 
98 
+1

私はこれがOPが望んでいたものではないと思います。彼は、バイト配列からn番目ごとのバイトを削除したいと考えています。代わりにバイト配列からn番目のバイトごとにデータを取得しないでください。 –

+1

ああ、私はそれを変更します.. –

関連する問題