如何在处理中将字符串转换为int

时间:2017-01-28 05:45:43

标签: arduino processing

我正在尝试使用Arduino IDE和Processing IDE制作免提鼠标。我没有序列化代码和转换为字符串的问题,但是当我尝试将串行字符串转换为int时,int变为0.我试图修剪它并使用integer.parseInt但它仍然给我错误:

NumberFormatException : For input String:"".

这是我的代码:

import processing.serial.*;
import java.awt.event.KeyListener;
import java.awt.Robot;

Serial myPort;  // Create object from Serial class
Robot robot;
String val;     // Data received from the serial port
boolean valtrue;
int xy = 0;
int x=0;

void setup()
{
    String portName = Serial.list()[3]; 
    myPort = new Serial(this, portName, 9600);
    myPort.bufferUntil('.');
    try { 
        robot = new Robot();
    } 
    catch (Exception e) {
        e.printStackTrace();
    }
}
void draw() {
    //reading serial port until \n
    String sensorValue = myPort.readStringUntil('\n');
    if (sensorValue != null) {
        int value = Integer.parseInt(sensorValue.trim());
        println(value);
    }
}

如果有人能够提供帮助,请回答。

1 个答案:

答案 0 :(得分:1)

处理具有int()功能,您可以使用Integer.parseInt()代替int()。在幕后,Integer.parseInt()函数调用String函数,但它更短。由你决定。

但是您的错误说明了一切:您将空""parseInt()传递给String函数。空String值无法转换为数字,因此您将获得异常。

您将不得不追踪draw()值为空的原因,但这就是导致此特定错误的原因。我会指出Cannot find node in dependency for word said 函数每秒被调用60次,并且你每次都试图从你的端口读取,所以也许你的阅读速度比你写的要快?