Arduino串行至处理-can';t将字符串转换为int
我希望这很简单: Arduino正在以DEC字符串的形式发送传感器读数。该代码正在工作…它发送一连串的距离传感器读数。“数字”字符串标识传感器,然后告知距离。202173100410 这是它从Arduino发送的方式:Arduino串行至处理-can';t将字符串转换为int,arduino,serial-port,integer,processing,Arduino,Serial Port,Integer,Processing,我希望这很简单: Arduino正在以DEC字符串的形式发送传感器读数。该代码正在工作…它发送一连串的距离传感器读数。“数字”字符串标识传感器,然后告知距离。202173100410 这是它从Arduino发送的方式: void打印距离(int-id,int-dist){ Serial.print(id);//id是传感器 如果(距离>=150 | |距离0){ myString=myPort.readStringUntil(lf); int val=Integer.parseInt(myStr
void打印距离(int-id,int-dist){
Serial.print(id);//id是传感器
如果(距离>=150 | |距离0){
myString=myPort.readStringUntil(lf);
int val=Integer.parseInt(myString);
//int val=Integer.valueOf(myString);
如果(val>=0){
//中心传感器
如果((val>=30&&val=310&&val=3100&&val=20)&(val=210)&&(val=2100)&&&(val尝试使用myString.toInt(myString必须是字符串对象而不是字符数组)这些行中的任何一行都应该工作:
int val=Integer.parseInt(myString);
int val=Integer.valueOf(myString);
如果不是,则说明myString
有问题。通常错误是由String
变量包含非数字字符引起的,如“ABC”
或“XYZ”
但是,它看起来像是数值,因为它正在打印出“30”
。所以发生了其他事情
我想知道是否有额外的不可见字符被添加到myString
变量中。请尝试以下操作:
println(myString);
println(myString.length());
您还可以检查Character
类中的有用函数,然后检查myString
中的每个字符,以确保它包含您期望的内容。正确的语句在代码中,但已注释掉。请使用Integer.parseInt()谢谢,但我尝试了这两个语句,并且都抛出了相同的错误…我将检查行终止符。Arduino println命令添加终止符,以便您知道它是行或字符串的结尾。使用trim(MyString)删除终止符。@mOpenG Yep,这正是我猜测的结果。trim()的好建议
功能。