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