0

Java で UDP 経由でバイト配列のパケットを受信して​​います。可能な最大バイト サイズはわかっていますが、現在受信しているサイズはわかりません。

このバイト配列から String インスタンスを作成すると、有用なペイロードの後に​​非常に多くの NUL 文字 (\u0000) が文字列に含まれます。

最初の NUL が表示される時点まで、このバイト配列を String に変換するにはどうすればよいですか? (ペイロードに NUL があるとは思わない)。

4

4 に答える 4

1

Stringsplit正規表現が現れる場所に基づいて文字列の配列に分割するメソッドがあります。あなたができる

    s = s.split("\u0000")[0];

文字列を NUL 文字で分割し、最初のセクションを取得します。

于 2013-01-26T01:49:23.323 に答える
1

最初の NULL が表示されるまで、StringTokenizer を使用して文字列の最初の部分を取得できる場合があります。次のようなもの: result = (新しい stringTokenizer(packet, null)).nextToken()

于 2013-01-26T01:45:32.190 に答える
1

String全体から作成しないでください。ゼロのバイト配列をスキャンしてから、呼び出します

new String(byteArray, 0, correctLength, "encoding")
于 2013-01-26T02:04:02.147 に答える