Arduino - 字串物件



Arduino程式設計中使用的第二種字串是String物件。

什麼是物件?

物件是一種包含資料和函式的構造。String物件可以像變數一樣建立並賦值或賦予字串。String物件包含函式(在面向物件程式設計 (OOP) 中稱為“方法”),這些函式對String物件中包含的字串資料進行操作。

下面的草圖和解釋將清楚地說明什麼是物件以及如何使用String物件。

示例

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

在草圖的頂部建立字串物件併為其賦值(或字串)。

String my_str = "This is my string." ;

這將建立一個名為my_str的String物件,併為其賦予值“This is my string.”。

這可以與建立變數併為其賦值(例如整數)進行比較:

int my_var = 102;

草圖的工作方式如下。

列印字串

字串可以像字元陣列字串一樣列印到序列埠監視器視窗。

將字串轉換為大寫

建立的字串物件my_str具有一些可以對其進行操作的函式或方法。這些方法是透過使用物件的名稱後跟點運算子 (.),然後是所要使用的函式的名稱來呼叫的。

my_str.toUpperCase();

toUpperCase()函式操作包含在型別為String的my_str物件中的字串,並將物件包含的字串資料(或文字)轉換為大寫字元。可以在Arduino String參考中找到String類包含的函式列表。從技術上講,String稱為類,用於建立String物件。

覆蓋字串

賦值運算子用於為my_str物件分配一個新字串,以替換舊字串

my_str = "My new string." ;

賦值運算子不能用於字元陣列字串,而只能用於String物件。

替換字串中的單詞

replace()函式用於將傳遞給它的第一個字串替換為傳遞給它的第二個字串。replace()是內置於String類的另一個函式,因此可用於String物件my_str。

獲取字串的長度

透過使用length()可以輕鬆獲得字串的長度。在示例草圖中,length()返回的結果直接傳遞給Serial.println(),無需使用中間變數。

何時使用String物件

String物件比字串字元陣列更容易使用。該物件具有內建函式,可以對字串執行許多操作。

使用String物件的主要缺點是它使用大量記憶體,並且可以快速耗盡Arduino的RAM記憶體,這可能會導致Arduino掛起、崩潰或行為異常。如果Arduino上的草圖很小並且限制了物件的使用,那麼應該不會出現問題。

字元陣列字串更難使用,您可能需要編寫自己的函式來操作這些型別的字串。優點是您可以控制所建立字串陣列的大小,因此您可以使陣列保持較小以節省記憶體。

您需要確保不會使用字串陣列寫入陣列邊界之外。String物件沒有這個問題,它會為您處理字串邊界,前提是有足夠的記憶體供其操作。String物件在記憶體不足時可能會嘗試寫入不存在的記憶體,但它永遠不會寫入其正在操作的字串的末尾之外。

字串的使用位置

在本章中,我們學習了字串、它們在記憶體中的行為及其操作。

字串的實際用途將在本課程的下一部分中介紹,屆時我們將學習如何從序列埠監視器視窗獲取使用者輸入並將輸入儲存在字串中。

廣告