Arduino Tutorial (Part 13): String Object

arduino316

Loại thứ hai của string dùng trong ngôn ngữ Arduino là String Object

Object là gì?

Một object là một construct (kiến trúc) chứa cả data và functions. Một String object có thể được tạo ra giống như một biến vào gán giá trị cho string. String object chứ hàm (gọi là “method” trong lập trình hướng đối tượng (OOP)) cái mà thực thi dữ liệu string được chứa bởi String Object.

Sketch sau và những giải thích sẽ làm rõ object là gì và String object được dùng như thế nào.

Example

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() { 

}

Kết quả

This is my string.
THIS IS MY STRING.
My new string.
My new Arduino sketch.
String length is: 22

Một string object được tạo và gán giá trị (hoặc string) vào phía trên của sketch.

String my_str = "This is my string." ;

Tạo một String object với tên my_str và gán giá trị cho nó là “This is my string”

Điều này có thể so sánh với với việc tạo một biến và gán một giá trị với số integer

int my_var = 102;

Sketch hoạt động như sau

Print  String

String có thể được print ra cửa sổ Serial Monitor gioogs như mảng ký tự string.

Convert the String to Upper-case

String object my_str được tạo, có một số function (hoặc method) có thể được hoạt động trên nó. Những method này được gọi bằng cách sử dụng tên object theo sau một toán tử dấu chấm (.) và sau đó là tên của function được dùng.

my_str.toUpperCase();

Hàm toUpperCase() thực thi trên string chứa trong object my_str (loại dữ liệu là String) và chuyển đổi dữ liệu string sang các ký tự upper-case (viết hoa). Một danh sách các fucntion trong Class String có thể được tìm thấy trong Arduino StringObject. String được gọi là classvaf dùng để tạo StringObject.

Overwrite (ghi đè) một String

Toán tử gán (assignment) được dùng để gán một chuỗi mới vào object my_str thay thế string cũ

my_str = "My new string." ;

Toán tử gán (assignment) không thể dùng trên các ký tự của mảng string, chỉ hoạt động trên StringObject.

Thay thế một Từ trong String

Hàm replace() được dùng để thay thế string đầu bằng string thứ hai. replace() là một function khác được xây dựng bên trong Class String và nó khả dụng cho các StringObject my_str.

Độ dài của String

Lấy độ dài của string dễ dàng với hàm leghth(). Trong sketch ví dugj, kết quả trả ra bởi lenght() được truyền trực tiếp vào Serial.println() mà không sử dụng các biến trung gian.

Khi nào sử dụng String Object

Một StringObject thì dễ dàng hơn để sử sụng một mảng ký tự string. Object được xây dựng với các function và có thể thực thi một số các thực thi về string.

Yếu điểm lớn nhất của StringObject là nó sử dụng quá nhiều tài nguyên memory và có thể đầy Arduio RAM một cách nhanh chóng, có thể gây treo Arduino, crash hoặc sinh ra nhưng hành vi không mong muốn. Nếu sketch trên Arduino nhỏ và có số lượng object giới hạn thì không thành vấn đề.

Mảng ký tự string thì khó hơn trong việc sử dụng và bạn có thể cần viết function của chính bạn để thực thi những thứ như vậy với string.  Ưu điểm của nó là bạn có thể kiểm soat kích thước của mảng string, vì vậy có thê giữ array nhỏ để tiết kiệm bộ nhớ.

Bạn cần đảm bảo rằng bạn không viết vượt qua giới hạn cuối của Mảng String. Nhưng StringObject lại không có vấn đề này và nó sẽ đảm bảo giới hạn của string cho bạn. StringObject có thể cố gắng viết vào vùng nhớ không tồn tại khi nó hết bộ nhớ, nhưng sẽ không bao giờ viết ra ngoài điểm cuối của string khi thao tác trên nó.

String được dùng ở đâu

Trong chương này chúng ta học về String, chúng như thế nào trong memory và các toán tử của chúng.

Việc thực hành với string  sẽ được đề cập trong phần kế của bài học khi chúng ta học làm cách nào để lấy user input (người dùng nhập vào) từ cửa sổ Serial Monitor và lưu chúng vào một string

Các bài cùng tutorial

Bài 01: Giới thiệu
Bài 02: Tổng quan
Bài 03: Arduino Board
Bài 04: Arduino IDE
Bài 05: Cấu Trúc Chương Trình
Bài 06: Data Types
Bài 07: Biến & Hằng số
Bài 08: Toán tử
Bài 09: Control Statements
Bài 10: Vòng lặp
Bài 11: Functions
Bài 12: Strings
Bài 13: String Object
Bài 14: Time
Bài 15: Arrays

Nguồn: tutorialspoint.com

Comments

linhkienbachkhoa

Comments