簡體   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