String index out of range: - 1输入读取问题?

小弟用processing做了一个有通讯功能的GUI介面,通讯模块接收到资料后,由TTL串口转USB传到计算机来,最后显示在UI上。引用了controlP5(GUI)与processing.serial(串口通讯)两个函式库。

现在的问题是想透过计算机再回传讯息到通讯模块,原本设定输入AT+HELP=1后会在UI上显示一些资讯,结果编程器却故障并收到错误"String index out of range: - 1"。上网看了一些帖子有提到字符串读取相关的问题,但是改了改还是出错,在这边因为代码有些太多就不全放了,只放我认为跟问题相关的部分,麻烦大佬们解惑了...

void controlEvent(ControlEvent field) {      //
  String tmp = field.getStringValue();
  char x = tmp.charAt(tmp.length()-1);
  if(tmp.indexOf(x)==-1){
    println("nope..");
    print(tmp.substring(0, tmp.lastIndexOf(x)));
    return;
  }
  else{
    if(field.getName() == "send_back_APRS")
      APORT.write(tmp + "\n");
    else if(field.getName() == "send_back_TT&C")
      TPORT.write(tmp);
    else if(field.getName() == "send_back_PM2.5")
      PPORT.write(tmp);
    else
      print("retransmitting failed!");
  }
}

报错的地方在这里:

if(tmp.indexOf(x)==-1){
    println("nope..");
    print(tmp.substring(0, tmp.lastIndexOf(x)));
    return;
}

tmp.lastIndexOf(x)的值是-1,所以这里会报错。