用户工具

站点工具


learing:examples:string_substring

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录前一修订版
learing:examples:string_substring [2017/10/05 03:55] 弘毅learing:examples:string_substring [2023/06/07 04:23] (当前版本) – 外部编辑 127.0.0.1
行 1: 行 1:
 +====== String substring Function(截取字符串) ======
  
 + substring()和 charAt()类似,允许你在给定的字符串里寻找一个特别的子字符串。
 +
 +===== 硬件要求 =====
 +
 +|OCROBOT控制器|
 +|USB线|
 +
 +这个例子没有电路图,只需要通过USB线把你的OCROBOT控制器连上电脑,并且打开串口监视器。
 +===== ALPHA MEGA328-U核心 =====
 +
 +==== 硬件 ====
 +  * [[ocrobot:alpha:mega328-u:main|ALPHA MEGA328-U]]
 +
 +==== 搭建电路 ====
 +
 +  - USB线连接计算机与ALPHA MEGA328-U。
 +==== 代码 ====
 +
 +只有一个参数的substring(),从给定的位置一直读到字符串末尾。例如
 +
 + <code cpp> String stringOne = "Content-Type: text/html";
 +
 +  // substring(index)从标志位到末尾寻找子字符串
 +  if (stringOne.substring(19) == "html") {
 +   }</code>
 +
 +
 +为真 <code cpp>
 +  String stringOne = "Content-Type: text/html";
 +
 +  // substring(index) 从标志位到末尾寻找子字符串
 +  if (stringOne.substring(19) == "htm") {
 +   }
 +
 +</code>
 +
 +为假,因为字符串里htm后面还有一个l
 +
 +
 +有两个参数的substring() 从第一个字符到末尾寻找给定的子字符串。
 +
 +<code cpp>  String stringOne = "Content-Type: text/html";
 +
 +  // 你也可以在字符串的中间寻找子字符串
 +  if (stringOne.substring(14,18) == "text") {
 +
 +  } </code>
 +
 +
 +从字符串14-18位寻找
 +
 +
 +注意,确保标志位没有超过字符串长度,否则会得到错误的结果。这个错误结果不容易被发现。
 +
 +<code cpp>/*
 +  String substring()
 +*/
 +
 +void setup() {
 +  // 串口通讯
 +  Serial.begin(9600);
 + 
 +  // 标题:
 +  Serial.println("\n\nString  substring():");
 +  Serial.println();
 +}
 +
 +void loop() {
 +  // 设置一个字符串:
 +  String stringOne = "Content-Type: text/html";
 +  Serial.println(stringOne);
 +
 +  // substring(index) 从标志位到末尾寻找子字符串:
 +  if (stringOne.substring(19) == "html") {
 +    Serial.println("It's an html file");
 +  }
 +  // 你也可以在字符串中部寻找子字符串
 +  if (stringOne.substring(14, 18) == "text") {
 +    Serial.println("It's a text-based file");
 +  }
 +
 +  //循环:
 +  while (true);
 +}</code>