我有一个ESP8266(Arduino)接收一个字符串(根据Arduino String
类库),其中包含20个数字,范围从0到200,逗号分隔。
我想解析并将值放入一个整数数组(例如int IntArray [21];。这就是String的样子:
dataFromClient = "1,2,1,0,1,1,0,1,0,25,125,0,175,100,0,25,175,0,50,125";
在过去的两周里,我已经尝试了很多次,而且我一直在进入“字符串”地狱!任何帮助将不胜感激。
答案 0 :(得分:0)
您应该提供有关目前为止所尝试内容的更多详细信息。
由于您使用的是Arduino库,因此可以使用字符串类的toInt()成员函数。
unsigned int data_num = 0;
int data[21];
// loop as long as a comma is found in the string
while(dataFromClient.indexOf(",")!=-1){
// take the substring from the start to the first occurence of a comma, convert it to int and save it in the array
data[ data_num ] = dataFromClient.substring(0,dataFromClient.indexOf(",")).toInt();
data_num++; // increment our data counter
//cut the data string after the first occurence of a comma
dataFromClient = dataFromClient.substring(dataFromClient.indexOf(",")+1);
}
// get the last value out of the string, which as no more commas in it
data[ data_num ] = dataFromClient.toInt();
在此代码中,字符串将被消耗,直到字符串中只剩下最后一个值。如果要将数据保留在字符串中,可以将位置变量定义为子字符串起始点,并在每个循环周期将其更新为下一个逗号后的位置