شیء رشته ای

آردوینو – شیء رشته ای

نوع دوم رشته مورد استفاده در برنامه نویسی آردوینو ، شیء رشته ای (String Object) است.

یک شیء چیست؟

یک شیء ، ساختاری است که هم داده و هم توابع را در بر می گیرد. یک شیء رشته ای را می توان کاملا مانند یک متغیر ایجاد کرد و یک مقدار یا رشته را به آن اختصاص داد. شیء رشته ای شامل توابع (که در برنامه نویسی شیء گرا (OOP) ، “متود” یا “method” نامیده می شوند) است که روی داده های رشته ای موجود در شیء رشته ای به کار می رود.

طرح زیر توضیح می دهد که یک شی چیست و چگونه از شیء رشته ای می توان استفاده کرد.

مثال :

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 ایجاد می کند و به آن مقدار “This is my string” را نسبت می دهد.

این مقدار (my_str) را می توان با ایجاد یک متغیر و اختصاص مقدار به آن (مقداری مثل یک عدد صحیح) مقایسه کرد :

int my_var = 102;

این طرح به شیوه ی زیر کار می کند:

نمایش رشته :

رشته را می توان دقیقاً مانند یک رشته آرایه ای شامل کاراکتر روی پنجره Serial Monitor نمایش داد.

حروف رشته را به حروف بزرگ تبدیل کنید :

شیء رشته ای my_str که ایجاد شده است ، تعدادی تابع یا متود دارد که می توان بر روی آن کار کرد. این متود ها با استفاده از نام اشیاء سپس توسط عملگر  (.) dot و سپس نام تابع مورد استفاده فراخوانی می شوند.

my_str.toUpperCase();

تابع () toUpperCase روی رشته موجود در شی my_str که از نوع رشته ای است عمل می کند و داده های رشته ای (یا متنی) داری شیء را به کاراکتر های بزرگ (حروف کوچک را به حروف بزرگ) تبدیل می کند. می توان لیستی از توابعی را که با کلاس String ارتباط دارند در مرجع Arduino String یافت. از نظر فنی به String ، کلاس گفته می شود و برای ایجاد اشیاء رشته ای استفاده می شود.

نوشتن مجدد روی یک رشته :

از عملگر واگذاری(انتساب) “=” برای تعیین رشته جدید به شیء  my_str که جایگزین رشته قدیمی است ، استفاده می شود.

my_str = "My new string." ;

عملگر واگذاری را نمی توان در رشته های آرایه ای کاراکتری استفاده کرد ، بلکه فقط روی اشیاء رشته ای کار می کند.

جایگزین کردن یک کلمه در رشته :

از تابع () replace برای جایگزین کردن رشته اول که توسط رشته دوم به آن منتقل شده است ، استفاده می شود. () replace یکی دیگر از توابعی است که در کلاس String ساخته شده است و بنابراین می توان از آن برای شیء رشته ای my_str استفاده کرد.

دریافت طولِ رشته :

گرفتن طول رشته به راحتی با استفاده () length انجام می شود. در طرح مثال ، نتیجه () length مستقیماً به () Serial.println منتقل می شود بدون استفاده از متغیر واسط.

چه موقع از شیء رشته ای استفاده کنیم :

استفاده از یک شیء رشته ای بسیار ساده تر از آرایه رشته ای کاراکتری است. شیء ساخته شده از توابع داخلی ای است که می تواند تعدادی از عمل ها را روی رشته انجام دهد.

بدی اصلی استفاده از شیء رشته ای این است که از حافظه زیادی استفاده می کند و می تواند سریعا از حافظه رم آردوینو استفاده کند ، که ممکن است باعث شود آردوینو هنگ کند یا رفتار غیر منتظره ای داشته باشد. اگر طرح روی آردوینو کوچک است و استفاده از اشیاء را محدود می کند ، پس مشکلی وجود نخواهد داشت.

استفاده از رشته های آرایه ای کاراکتری دشوار تر است و برای کار با این نوع رشته ها ممکن است مجبور شوید توابع مخصوص به خودتان را بسازید و از آن ها استفاده کنید. خوبی استفاده از شیء رشته ای این است که شما می توانید طول آرایه های رشته ای را که ساخته اید کنترل کنید ، بنابراین می توانید آرایه ها را برای ذخیره در حافظه های کوچک بسازید.(یعنی به گونه ای طول آرایه ها را کنترل کنید که در حافظه های کوچک تر جا شوند)

شما باید مطمئن شوید که با نوشتن آرایه های رشته ای از انتهای مرزهای آرایه تجاوز نمی کنید. شیء رشته ای این مشکل را ندارد و از مرزهای رشته ی شما مراقبت می کند ، مشروط بر اینکه حافظه کافی برای کار در آن وجود داشته باشد. یعنی شیء رشته ای می تواند داخل حافظه ای نوشته شود که در هنگام اجرا فضای کافی در آن وجود نداشته باشد ولی هرگز تا پایان رشته ای که در آن کار می کند را نمی تواند بنویسد.

مکانی که رشته ها استفاده می شوند :

در این جلسه ما درباره ی رشته ها ، نحوه رفتار آنها در حافظه و توابع آن ها صحبت کردیم.

استفاده عملی از رشته ها را در جلسه بعدی آموزش آردوینو قرار دادیم تا نحوه دریافت ورودی از کاربر در پنجره ی Serial Monitor را بررسی کنیم و ورودی را در یک رشته ذخیره نماییم.

 

منبع : https://b2n.ir/785740

مطالعه بیشتر