インターネット経由でデータを受信する必要があるプログラムを作成しています。DatagramSockets を使用して DatagramPackets を受信しています。これはすべて正常に機能し、受け取るバイト配列は私が期待するものとまったく同じです。
ただし、バイト配列を文字列に変換してから整数に変換しようとすると、非常に奇妙なことが起こります。
parseInt
以下のコードを実行すると、その行で NumberFormatException が発生します。
String length = new String(data, 1, data.length-1);
System.out.println("length = "+length);
size = Integer.parseInt(length);
System.out.println("size = "+size);
ただし、 の内容を調べると、data
だけが含まれていることがわかります55,52,49,56,53,0,0,0,0,0,0,0,0,0,0,0,0
。これは問題なく、文字列 "74185" です。ただし、これは例外をスローします。
「74185」をlength
文字列としてハードコーディングすると、すべてがうまく機能します。
ここで何がうまくいかないのでしょうか?