我正在尝试使用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);
}
}
如果有人能够提供帮助,请回答。
答案 0 :(得分:1)
处理具有int()
功能,您可以使用Integer.parseInt()
代替int()
。在幕后,Integer.parseInt()
函数调用String
函数,但它更短。由你决定。
但是您的错误说明了一切:您将空""
值parseInt()
传递给String
函数。空String
值无法转换为数字,因此您将获得异常。
您将不得不追踪draw()
值为空的原因,但这就是导致此特定错误的原因。我会指出Cannot find node in dependency for word said
函数每秒被调用60次,并且你每次都试图从你的端口读取,所以也许你的阅读速度比你写的要快?