W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
在Arduino編程中使用的第二種類型的字符串是字符串對(duì)象。
對(duì)象是一個(gè)包含數(shù)據(jù)和函數(shù)的構(gòu)造。字符串對(duì)象可以像變量一樣被創(chuàng)建并分配一個(gè)值或字符串。字符串對(duì)象包含函數(shù)(在面向?qū)ο缶幊蹋∣OP)中稱為“方法”),它們對(duì)字符串對(duì)象中包含的字符串?dāng)?shù)據(jù)進(jìn)行操作。
下面的草圖和解釋將清楚說明對(duì)象是什么,以及如何使用字符串對(duì)象。
void setup() { String my_str = "This is my string."; Serial.begin(9600); // (1) print the string Serial.println(my_str); // (2) change the string to upper-case my_str.toUpperCase(); Serial.println(my_str); // (3) overwrite the string my_str = "My new string."; Serial.println(my_str); // (4) replace a word in the string my_str.replace("string", "Arduino sketch"); Serial.println(my_str); // (5) get the length of the string Serial.print("String length is: "); Serial.println(my_str.length()); } void loop() { }
This is my string. THIS IS MY STRING. My new string. My new Arduino sketch. String length is: 22
創(chuàng)建字符串對(duì)象,并在草圖頂部分配一個(gè)值(或字符串)。
String my_str = "This is my string." ;
這將創(chuàng)建一個(gè)名為 my_str 的String對(duì)象,并為其賦值“This is my string.”。
這可以與創(chuàng)建變量并為其分配一個(gè)值(如整數(shù))相比較:
int my_var = 102;
以上草圖以下列方式工作。
字符串可以像字符數(shù)組字符串一樣打印到串口監(jiān)視器窗口。
創(chuàng)建的字符串對(duì)象my_str,有多個(gè)可以在其上操作的函數(shù)或方法。這些方法通過使用對(duì)象名稱后跟點(diǎn)運(yùn)算符(.),然后使用函數(shù)的名稱來調(diào)用的。
my_str.toUpperCase();
toUpperCase()函數(shù)對(duì)包含在類型為String的 my_str 對(duì)象中的字符串進(jìn)行操作,并將對(duì)象包含的字符串?dāng)?shù)據(jù)(或文本)轉(zhuǎn)換為大寫字符。String類包含的函數(shù)列表可以在Arduino字符串參考中找到。從技術(shù)上講,String被稱為一個(gè)類,用于創(chuàng)建String對(duì)象。
賦值運(yùn)算符用于將新字符串分配給 my_str 對(duì)象以替換舊字符串。
my_str = "My new string." ;
賦值運(yùn)算符不能用于字符數(shù)組字符串,僅適用于String對(duì)象。
replace()函數(shù)用于將傳遞給它的第二個(gè)字符串替換傳遞給它的第一個(gè)字符串。replace()是構(gòu)建在String類中的另一個(gè)函數(shù),因此可以在String對(duì)象my_str上使用。
通過使用length()可以很容易地獲取字符串的長度。在示例草圖中,由length()返回的結(jié)果直接傳遞到Serial.println(),而不使用中間變量。
字符串對(duì)象比字符串字符數(shù)組更容易使用。該對(duì)象具有內(nèi)置函數(shù),可以對(duì)字符串執(zhí)行多個(gè)操作。
使用String對(duì)象的主要缺點(diǎn)是,它使用了大量的內(nèi)存,可能會(huì)很快耗盡Arduino的RAM內(nèi)存,這可能會(huì)導(dǎo)致Arduino掛起,崩潰或行為意外。如果Arduino上的草圖很小并限制了對(duì)象的使用,那么應(yīng)該沒有問題。
字符數(shù)組字符串更難使用,你可能需要編寫自己的函數(shù)來操作這些類型的字符串。其優(yōu)點(diǎn)是,你可以控制字符串?dāng)?shù)組的大小,因此你可以保持?jǐn)?shù)組很小來節(jié)省內(nèi)存。
你需要確保不要超出字符串?dāng)?shù)組邊界的范圍,而String對(duì)象沒有這個(gè)問題,只要有足夠的內(nèi)存供它操作,就會(huì)照顧到你的字符串邊界。在內(nèi)存不足時(shí),String對(duì)象可以嘗試在不存在的內(nèi)存中寫入,但絕不會(huì)在超出其操作的字符串末尾的地方寫入。
在本章中,我們學(xué)習(xí)了字符串,它們?cè)趦?nèi)存中的行為及其操作。
字符串的用法將在課程的下一部分進(jìn)行介紹,屆時(shí)我們將學(xué)習(xí)如何從串口監(jiān)視器窗口獲取用戶輸入并將輸入保存為字符串。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: