質問: javaについてわからないことがあるので質問させていただきます。 私は現在Android(セントラル)とBLEモジュール(ペリフェラル)でBLE通信をし、BLEモジュールからAndroidへデータを送信しています。 送信するデータはuint8_tデータを格納した配列32ビット分です。 問題はAndroidのデータを受け取る側なのですが、 32ビットなら受け取ったcharacteristicからgetIntValue()でフォーマット指定をFORMAT_UINT32にすればよいのですが、 今後受け取るデータ数を増やす予定なのでUINT32では足りなくなってしまいます。 しかしgetIntValue()のフォーマットにはFORMAT_UINT64がないため、getStringValueを使用せざるを得ないことがわかりました。 そこで、getStringValueを使用して、Integer.parseInt()で受け取ったstring型データをint型に変換したのですが、Android studioのLogcatに以下のようなWarmが出力されてしまいました。 ``` java.lang.NumberFormatException: Invalid int: " " at java.lang.Integer.invalidInt(Integer.java:137) at java.lang.Integer.parse(Integer.java:374) at java.lang.Integer.parseInt(Integer.java:365) at java.lang.Integer.parseInt(Integer.java:331) at com.example.ble4_valuedisplay.MainActivity$5.onCharacteristicChanged(MainActivity.java:306) at android.bluetooth.BluetoothGatt$1.onNotify(BluetoothGatt.java:463) at android.bluetooth.IBluetoothGattCallback$Stub.onTransact(IBluetoothGattCallback.java:403) at android.os.Binder.execTransact(Binder.java:404) at dalvik.system.NativeStart.run(Native Method) ``` このようなコードが繰り返し呼ばれてしまいます。 parseIntで引っかかっているのは何となくわかりますが、原因はなんでしょうか? また、解決方法や他の手法について知っている方がいたら教えていただきたいです。 宜しくお願いします。
回答: > > java.lang.NumberFormatException: Invalid int: " " > > > ログ通り、「空白」はintに変換できないというエラーですね。 trimしてから変換すれば良いのではないでしょうか。