Android 无法在eclipse中将字符串解析为整数

Android 无法在eclipse中将字符串解析为整数,android,Android,我正在将我的应用程序连接到蓝牙串行连接。 我想将字符串中的数据更改为整数,以便进行比较 阅读信息时就是这样: case MESSAGE_READ: byte[] readBuf = (byte[]) msg.obj; // construct a string from the valid bytes in the buffer String readMessage = new String(readBuf, 0, msg.arg1);

我正在将我的应用程序连接到蓝牙串行连接。 我想将
字符串
中的数据更改为
整数
,以便进行比较

阅读信息时就是这样:

case MESSAGE_READ:
    byte[] readBuf = (byte[]) msg.obj;              

    // construct a string from the valid bytes in the buffer
    String readMessage = new String(readBuf, 0, msg.arg1);
    Log.i(LOG_TAG, readMessage);

    mTextView.setText(readMessage);
    if(mTextView!=null){
        int read = Integer.parseInt(readMessage.trim());
     if (read<1 && read>28){
        alarm();
        sendSMS();
     }
    }
    /* int read = new Integer(readMessage.trim());
    if (read<1&&read>28){
        alarm();
        sendSMS();
    }*/
    /*if (readMessage.trim().equalsIgnoreCase("20"))
    {
       alarm();
       sendSMS();
    }*/
    break;
然后我将其更改为:

在案例消息中:

case MESSAGE_READ:
                int i;
                byte[] readBuf = (byte[]) msg.obj;              

             // construct a string from the valid bytes in the buffer
                String readMessage = new String(readBuf, 0, msg.arg1);
                Log.i(LOG_TAG, readMessage);

                mTextView.setText(readMessage);

                List<Integer> integers = new ArrayList<Integer>();
                String [] numbers = readMessage.split("\n");
                for (String number : numbers) {
                    integers.add(Integer.valueOf(number.trim()));
                }


               /* int read = new Integer(readMessage.trim());
                if (read<1&&read>28){
                    alarm();
                    sendSMS();
                }*/
                /*if (readMessage.trim().equalsIgnoreCase("20"))
                   {
                       alarm();
                       sendSMS();
                   }*/
                break;
有人知道解决办法吗?
非常感谢。

您的邮件包含一个包含许多数字的字符串,在单独的行中。您不能在单个整数中解析这样的字符串-因此您会得到错误

您可以尝试这样读取整数数组:

List<Integer> integers = new ArrayList<Integer>();
String [] numbers = readMessage.split("\n");
for (String number : numbers) {
    integers.add(Integer.valueOf(number.trim()));
}
List integers=new ArrayList();
String[]number=readMessage.split(“\n”);
用于(字符串编号:数字){
add(Integer.valueOf(number.trim());
}

在此代码之后,
整数将包含您在消息中收到的数字。

当我用try-catch块包围它时,它也出现了同样的问题,开始工作。 比如:


请分享代码行FinalSetting.java:352,它看起来像你试图解析无效的nothanks,我按照你的指示,但仍然有错误。有关完整信息,请看我新编辑的问题:D
    05-05 23:14:39.519: D/BluetoothReadService(9614): connected
05-05 23:14:39.529: D/BluetoothReadService(9614): create ConnectedThread
05-05 23:14:39.529: D/BluetoothReadService(9614): setState() 2 -> 3
05-05 23:14:39.539: I/BluetoothReadService(9614): BEGIN mConnectedThread
05-05 23:14:39.549: I/Heart Beat Alarm System(9614): MESSAGE_STATE_CHANGE: 3
05-05 23:14:39.649: I/Heart Beat Alarm System(9614): 

05-05 23:14:39.649: I/Heart Beat Alarm System(9614): 4

05-05 23:14:39.649: I/Heart Beat Alarm System(9614): 5

05-05 23:14:39.649: I/Heart Beat Alarm System(9614): 6

05-05 23:14:39.649: I/Heart Beat Alarm System(9614): 7

05-05 23:14:39.649: I/Heart Beat Alarm System(9614): 8

05-05 23:14:39.649: I/Heart Beat Alarm System(9614): 9

05-05 23:14:39.649: I/Heart Beat Alarm System(9614): 10

05-05 23:14:39.649: I/Heart Beat Alarm System(9614): 11

05-05 23:14:39.649: I/Heart Beat Alarm System(9614): 12

05-05 23:14:39.649: I/Heart Beat Alarm System(9614): 13

05-05 23:14:39.649: I/Heart Beat Alarm System(9614): 14

05-05 23:14:39.649: I/Heart Beat Alarm System(9614): 15

05-05 23:14:39.649: I/Heart Beat Alarm System(9614): 16

05-05 23:14:39.649: I/Heart Beat Alarm System(9614): 17

05-05 23:14:39.649: I/Heart Beat Alarm System(9614): 18

05-05 23:14:39.649: I/Heart Beat Alarm System(9614): 19

05-05 23:14:39.649: I/Heart Beat Alarm System(9614): 20

05-05 23:14:39.649: I/Heart Beat Alarm System(9614): 21

05-05 23:14:39.649: I/Heart Beat Alarm System(9614): 22

05-05 23:14:39.649: I/Heart Beat Alarm System(9614): 23

05-05 23:14:39.649: I/Heart Beat Alarm System(9614): 24

05-05 23:14:39.649: I/Heart Beat Alarm System(9614): 25

05-05 23:14:39.649: I/Heart Beat Alarm System(9614): 26

05-05 23:14:39.649: I/Heart Beat Alarm System(9614): 27

05-05 23:14:39.649: I/Heart Beat Alarm System(9614): 28

05-05 23:14:39.649: I/Heart Beat Alarm System(9614): 29

05-05 23:14:39.649: I/Heart Beat Alarm System(9614): 0

05-05 23:14:39.649: I/Heart Beat Alarm System(9614): 1

05-05 23:14:39.649: I/Heart Beat Alarm System(9614): 2

05-05 23:14:39.649: I/Heart Beat Alarm System(9614): 3

05-05 23:14:39.649: I/Heart Beat Alarm System(9614): 4

05-05 23:14:39.649: I/Heart Beat Alarm System(9614): 5

05-05 23:14:39.649: I/Heart Beat Alarm System(9614): 6

05-05 23:14:39.649: I/Heart Beat Alarm System(9614): 7

05-05 23:14:39.649: I/Heart Beat Alarm System(9614): 8

05-05 23:14:39.649: I/Heart Beat Alarm System(9614): 9

05-05 23:14:39.649: I/Heart Beat Alarm System(9614): 10

05-05 23:14:39.649: I/Heart Beat Alarm System(9614): 11

05-05 23:14:39.649: I/Heart Beat Alarm System(9614): 12

05-05 23:14:39.649: I/Heart Beat Alarm System(9614): 13

05-05 23:14:39.649: I/Heart Beat Alarm System(9614): 14

05-05 23:14:39.649: I/Heart Beat Alarm System(9614): 15

05-05 23:14:39.649: I/Heart Beat Alarm System(9614): 16

05-05 23:14:39.649: I/Heart Beat Alarm System(9614): 17

05-05 23:14:39.649: I/Heart Beat Alarm System(9614): 18

05-05 23:14:39.649: I/Heart Beat Alarm System(9614): 19

05-05 23:14:39.649: I/Heart Beat Alarm System(9614): 20

05-05 23:14:39.649: I/Heart Beat Alarm System(9614): 21

05-05 23:14:39.649: I/Heart Beat Alarm System(9614): 22

05-05 23:14:39.649: I/Heart Beat Alarm System(9614): 23

05-05 23:14:39.649: I/Heart Beat Alarm System(9614): 24

05-05 23:14:39.649: I/Heart Beat Alarm System(9614): 25

05-05 23:14:39.649: I/Heart Beat Alarm System(9614): 26

05-05 23:14:39.649: I/Heart Beat Alarm System(9614): 27

05-05 23:14:39.649: I/Heart Beat Alarm System(9614): 28

05-05 23:14:39.649: I/Heart Beat Alarm System(9614): 29

05-05 23:14:39.649: I/Heart Beat Alarm System(9614): 0

05-05 23:14:39.649: I/Heart Beat Alarm System(9614): 1

05-05 23:14:39.649: I/Heart Beat Alarm System(9614): 2

05-05 23:14:39.649: I/Heart Beat Alarm System(9614): 3

05-05 23:14:39.649: I/Heart Beat Alarm System(9614): 4

05-05 23:14:39.649: I/Heart Beat Alarm System(9614): 5

05-05 23:14:39.649: I/Heart Beat Alarm System(9614): 6

05-05 23:14:39.649: I/Heart Beat Alarm System(9614): 7

05-05 23:14:39.649: I/Heart Beat Alarm System(9614): 8

05-05 23:14:39.649: I/Heart Beat Alarm System(9614): 9

05-05 23:14:39.649: I/Heart Beat Alarm System(9614): 10

05-05 23:14:39.649: I/Heart Beat Alarm System(9614): 11

05-05 23:14:39.649: I/Heart Beat Alarm System(9614): 12

05-05 23:14:39.649: I/Heart Beat Alarm System(9614): 13
05-05 23:14:39.659: D/AndroidRuntime(9614): Shutting down VM
05-05 23:14:39.659: W/dalvikvm(9614): threadid=1: thread exiting with uncaught exception (group=0x40018578)
05-05 23:14:39.659: E/AndroidRuntime(9614): FATAL EXCEPTION: main
05-05 23:14:39.659: E/AndroidRuntime(9614): java.lang.NumberFormatException: unable to parse '' as integer
05-05 23:14:39.659: E/AndroidRuntime(9614):     at java.lang.Integer.parseInt(Integer.java:362)
05-05 23:14:39.659: E/AndroidRuntime(9614):     at java.lang.Integer.parseInt(Integer.java:332)
05-05 23:14:39.659: E/AndroidRuntime(9614):     at java.lang.Integer.valueOf(Integer.java:506)
05-05 23:14:39.659: E/AndroidRuntime(9614):     at com.android.hbas.FinalSetting$1.handleMessage(FinalSetting.java:355)
05-05 23:14:39.659: E/AndroidRuntime(9614):     at android.os.Handler.dispatchMessage(Handler.java:99)
05-05 23:14:39.659: E/AndroidRuntime(9614):     at android.os.Looper.loop(Looper.java:130)
05-05 23:14:39.659: E/AndroidRuntime(9614):     at android.app.ActivityThread.main(ActivityThread.java:3687)
05-05 23:14:39.659: E/AndroidRuntime(9614):     at java.lang.reflect.Method.invokeNative(Native Method)
05-05 23:14:39.659: E/AndroidRuntime(9614):     at java.lang.reflect.Method.invoke(Method.java:507)
05-05 23:14:39.659: E/AndroidRuntime(9614):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
05-05 23:14:39.659: E/AndroidRuntime(9614):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625)
05-05 23:14:39.659: E/AndroidRuntime(9614):     at dalvik.system.NativeStart.main(Native Method)
List<Integer> integers = new ArrayList<Integer>();
String [] numbers = readMessage.split("\n");
for (String number : numbers) {
    integers.add(Integer.valueOf(number.trim()));
}
try 
    {
    size_of_file=Integer.parseInt(Value);
    }
    catch(Exception obj)
    {
        Toast.makeText(this, "Error :"+obj.getMessage(), Toast.LENGTH_LONG).show();
    }