Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C indexOf和子字符串跳过1个结果_C_Arduino_Substring_Indexof - Fatal编程技术网

C indexOf和子字符串跳过1个结果

C indexOf和子字符串跳过1个结果,c,arduino,substring,indexof,C,Arduino,Substring,Indexof,我正在尝试分离/分解一个字符串,以便稍后对其进行处理 输入字符串如下所示: 1_2_3_2_2 以上述值作为参数调用的函数: void parseXString(String value){ int amountX = (value.length() / 2) + 1; int seperatorIndex = value.indexOf('_'); int secondSeperator = 0; for(int i = 0; i < amountX; i++){

我正在尝试分离/分解一个字符串,以便稍后对其进行处理

输入字符串如下所示:

1_2_3_2_2
以上述值作为参数调用的函数:

void parseXString(String value){
  int amountX = (value.length() / 2) + 1;
  int seperatorIndex = value.indexOf('_');
  int secondSeperator = 0;

  for(int i = 0; i < amountX; i++){
    String xPoint = "";

    if(i == 0){
      xPoint = value.substring(0, seperatorIndex);
    }else{
      xPoint = value.substring(seperatorIndex + 1, secondSeperator);
    }

    sendMessage((String)i + " X = " + xPoint + " || SEP: " + (String)seperatorIndex + " / " + (String)secondSeperator );

    seperatorIndex = value.indexOf("_", seperatorIndex + 1);
    secondSeperator = value.indexOf("_", seperatorIndex + 1);


  }

  sendMessage("Last X = " + value.substring(seperatorIndex + 1));
}
正如您所注意到的,在第二次迭代中,应该返回值
2
,而不是
3

<>我认为代码< SePurATaReals>代码>有问题,但我现在已经不在了(以这种方式工作很长时间)。< /P>
所以我的问题很简单。为什么我不能得到正确的值/我如何修复它?

您的错误是您在第一次迭代中增加了
separatorindex
。因此,在第二次迭代中,
separatorindex
是3


如果(i==0)条件,则应将递增
separatorindex
的部分放入
的else部分。执行此操作时,还必须在条件的if部分中增加
secondseparator

哇,解决办法就是这么简单。。。非常感谢您的时间和回答!你真的救了我一天
0 X = 1 || SEP: 1 / 0
1 X = 3 || SEP: 3 / 5
2 X = 2 || SEP: 5 / 7
3 X = 2 || SEP: 7 / -1
4 X = 1 || SEP: -1 / 1
Last X = 2_3_2_2