繁体   English   中英

将字符串从Byte数组转换为int

[英]Converting a String from Byte array to int

由于这是我第一次使用arduino和android,所以我整夜都在搜索这个问题。 我的问题是,如何将变量data * String转换为int? 每当执行操作时,我就一直在获取NumberFormatException: int pulse = Integer.ParseInt(data);

我的目标是要能够获取来自arduino的数据并将其作为整数,以便我能够进行比较。

另外:变量“数据”是脉搏率。 我需要将其转换为int,以便可以比较脉冲率是否仍然正常的值。 经过数小时的搜索,我发现我要转换为int的内容并非纯粹是字符串,因为它来自arduino,现在我的问题是如何使变量“ data”成为整数。

这是我的代码:

public void run()
        {                
            while(!Thread.currentThread().isInterrupted() && !stopWorker)
            {
                try 
                {
                    final int bytesAvailable = mmInputStream.available();                        
                    if(bytesAvailable > 0)
                    {
                        byte[] packetBytes = new byte[bytesAvailable];
                        mmInputStream.read(packetBytes);
                        for(i=0;i<bytesAvailable;i++)
                        {
                            byte b = packetBytes[i];
                            if(b == delimiter)
                            {
                                final byte[] encodedBytes = new byte[readBufferPosition];
                                System.arraycopy(readBuffer, 0, encodedBytes, 0, encodedBytes.length);
                                final String data = new String(encodedBytes, "US-ASCII");
                                readBufferPosition = 0;

                                handler.post(new Runnable()
                                {
                                    public void run()
                                    {   

                                        Intent i = new Intent(Bluetooth.this, Home.class);
                                        i.putExtra("theBPM",data);
                                        startActivity(i);
                                    }
                                });
                            }
                            else
                            {
                                readBuffer[readBufferPosition++] = b;
                            }
                        }
                    }
                } 
                catch (IOException ex) 
                {
                    stopWorker = true;
                }
            }
        }
    });

    workerThread.start();

谢谢。

我们假设问题是String到int的问题,并且您已经进入调试模式,或者发出了一些Toast消息,说明您正在按预期方式获取字符串表示形式。

您可以尝试以下选项:

尝试打印/记录/烤面包以查看数据中的内容 数据具有比数字以外的其它字符或可能是你在数据双(十进制)值,这只能发生。 为此,您可能需要使用Double.parseDouble(data)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM