iT邦幫忙

0

Arduino如何分割特定中文字串

  • 分享至 

  • xImage

我想請教一下,我用arduino寫分割字串要怎麼寫呢?(esp32)

網路上有查到底下這種寫法
int index = My_S.indexOf(' ');
String sub_S = My_S.substring(0,index);

我想要的是「eq1」10月後面的數字21,這樣要怎麼寫呢?

底下的資料是放在變數裡面(從網路上抓取下來),資料每次都會更新大概有十幾筆,我抓其中三筆當範例,唯一有規律是eq的地方,想要每次都擷取eq1那行,「月」後面的數字!!

以這個想法下去寫,寫的出來嗎,要怎麼寫呢,還是說有其他寫法呢?

<a href="#eq-3" 時間為10月17
<a href="#eq-2" 時間為10月18
<a href="#eq-1" 時間為10月21

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0
sfc507
iT邦新手 4 級 ‧ 2022-10-20 10:02:29

基本上用arduino還是不要處理中文字元比較好!
以你的例子要分割字串擷取日期,最好還是有2個判斷資料比較不會出錯,
例如:11月20日
就要找到字串中的"月"跟"日",中間就是你要的答案。

以下為片段程式碼

  String str1 = u8"11月20日";
  String test1 = u8"月";
  Serial.println(test1.length()); //知道一個中文字元的長度
  int idx1 = str1.indexOf(u8"月");
  int idx2 = str1.indexOf(u8"日");
  String sub_S = str1.substring(idx1+3,idx2);
  Serial.println(sub_S);

若是你只要找"eq-1"那行的資料,就在前面多加一個判斷

int idx3 = str1.indexOf("eq-1"); //如果字串找的到就會回傳他所在的index,若沒有則回傳-1

好的,感謝您??

你好,我想請問一下,最近我在測試的時候
int idx3 = str1.indexOf("eq-1");
這行好像變成沒有作用,不知道您有沒有其他方法呢?
https://www.cwb.gov.tw/V8/C/E/MOD/MAP_LIST.html?T=2022101001-3
中央氣象局的資料有規律的應該就是eq-1(最新的資料),最新的資料也會顯示在最後一行,有甚麼寫法能抓到嗎!/images/emoticon/emoticon02.gif

我要發表回答

立即登入回答