You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Arduino如何将客户端接收的特定格式字符串拆分至三个字符串?

解决Arduino客户端字符串拆分问题

刚好做过类似的字符串解析需求,给你一个直接能用的实现方案,思路是先把客户端发来的完整字符串接收完毕,再根据固定的分隔符(,和*)拆分出三个目标变量:

WiFiClient client = server.available();
if (!client) { 
  return; 
}

// 1. 先接收完整的客户端字符串
String receivedData = "";
while (client.available()){
  char d = (char)client.read();
  // 遇到结束符'/'就停止接收
  if (d == '/') {
    break;
  }
  receivedData += d;
}

// 2. 拆分字符串为三个目标变量
String String1 = "";
String String2 = "";
String String3 = "";

// 找到第一个分隔符','的位置
int commaIndex = receivedData.indexOf(',');
// 找到第二个分隔符'*'的位置
int starIndex = receivedData.indexOf('*');

// 确保分隔符位置有效(避免格式错误导致的异常)
if (commaIndex != -1 && starIndex != -1 && commaIndex < starIndex) {
  String1 = receivedData.substring(0, commaIndex);
  String2 = receivedData.substring(commaIndex + 1, starIndex);
  String3 = receivedData.substring(starIndex + 1);
} else {
  // 如果格式不符合预期,可以在这里加错误处理,比如打印日志
  Serial.println("Received data format error!");
}

// 测试输出,验证结果
Serial.println("String1: " + String1);
Serial.println("String2: " + String2);
Serial.println("String3: " + String3);

代码说明:

  • 首先完整接收数据直到遇到结束符/,避免逐字符处理的碎片化问题
  • 用indexOf()定位两个关键分隔符的位置,确保格式正确后再截取子串
  • 加入了简单的格式校验,防止非法数据导致程序崩溃
  • 最后可以通过串口打印来验证拆分结果是否正确

内容的提问来源于stack exchange,提问作者Davide

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 08:11:05