استفاده از کلاس رشته ای

درس «استفاده از کلاس String» در دوره جاوا به بررسی مفاهیم اساسی مرتبط با رشتهها میپردازد. در این درس، نحوه ایجاد و مقداردهی رشتهها با استفاده از کلاس String، انجام عملیات متداول مانند length، substring، replace، و toLowerCase/toUpperCase، و مقایسه رشتهها با متدهای equals و equalsIgnoreCase به طور جامع توضیح داده شده است. همچنین، مفهوم غیرقابل تغییر بودن (Immutable) رشتهها در جاوا و تأثیر آن بر عملکرد برنامهها بررسی میشود. این آموزش بر روی کاربرد عملی متدهای کلاس String برای مدیریت دادههای متنی در برنامههای جاوا متمرکز است و اهمیت استفاده از کلاس StringBuilder برای عملیات پیشرفته و بهینهتر نیز مورد اشاره قرار میگیرد. این درس برای توسعهدهندگانی طراحی شده است که میخواهند با ابزارهای پایهای اما قدرتمند مدیریت رشتهها در جاوا آشنا شوند و آنها را در پروژههای واقعی بهکار گیرند.
در این قسمت از آموزشم قصد دارم انواع روش های ایجاد رشته ها رو به شما نشان بدهم و در کل با رشته ها و کار کردن با آنها بیشتر آشنایتان کنم.
خب؛ بیایید چند تا رشته ایجاد کنیم.
من در حال کار روی پروژه ای با نام StringClass هستم و کدهایم را در متد main ام مینویسم.
خب؛ یک string با نام s1 تعریف و اعلان میکنم.
و آنرا با یک عبارت مقداردهی میکنم.
عبارت های رشته ای همیشه داخل یک جفت دابل کوتیشن قرار میگیرند و من اینجا رشته This is a String را همراه با یک علامت ! به آن اختصاص میدهم. بعد میآیم با دستور System.out.println مقدارش را در خروجی نمایش میدهم.
و برای اینکار هم متغیر s1 را میدهم به این دستور و از کدم اجرا میگیرم.
و نتیجه ای که انتظارش را داشتیم به ما نشان میدهد.
یعنی رشته This is a String.
حالا یک رشته دیگر ایجاد میکنم ولی اینبار از روش متد constructor کلاس یا سازنده استفاده میکنیم.
و یک عبارت رشته ای دیگر با عنوان This is also a String! را به آن میدهم.
با کلیدهای کنترل و d در محیط ویندوزی یا با دکمه های کامند و d در محیط سیستم عامل های macOS x، این دستور خروجی را duplicate میکنم و آنرا میآورم پایین و به این موردی که پاست کردم متغیر s2 رو میدهم که آنرا در خروجی نمایش بدهد.
و یکبار دیگر با اجرا کد، میبینیم که چیزی که انتظارش را داشتیم در خروجی نمایش داده شد.
خب؛ باز هم میگویم که عملاً هیچ تفاوتی بین این دو سبک دستوراتی که چند لحظه پیش سفارشی کردم یا به عبارتی بین این دو روش تعریف String ها؛ وجود ندارد و هر دو این دو روش یک شیء String ایجاد میکنند که میتوانید هر کدام را که خواستید استفاده کنید.
همچنین میتوانید Stringها را با استفاده از الحاق یا اضافه کردن مقادیر به همدیگر ایجاد کنید.
من یک رشته دیگر با نام s3 ایجاد میکنم و مقدارش را میگذارم Shirt size و دو نقطه.
بعد میآیم یک رشته دیگر با نام s4 و مقدار M که مخفف medium باشد ایجاد میکنم و نهایتاً یک String با نام s5 تعریف میکنم که این مقادیر رو کنار هم قرار بده و بعد این s5 رو در خروجی نمایش میدهم.
میبینیم که عبارت Shirt size : M در خروجی نمایش داده میشود و اینطوری اون رو بدست میآورم.
حالا میخواهم این الحاق مقادیر رو ادامه بدهم. در آخر این عبارت میآیم یک رشته اضافه میکنم که این رشته با یک کاما شروع میشود و بعد Qty دونقطه و بعد هم یک مقدار عددی به آخر این عبارت اضافه میکنم.
وقتی که مقادیر عددی رو به مقادیر رشته ای اضافه میکنیم، همانطور که قبلاً هم دیدیم، مقادیر عددی به طور اتوماتیک در طول فرآیند کامپایل به رشته تبدیل میشوند.
و وقتی این مقدار رو در خروجی نمایش بدهم یک “تک رشته” شامل همه اون مقادیر به من برمیگرداند.
قبلاً هم گفته بودم که رشته ها میتوانند از آرایه ای از کاراکترها ساخته بشوند.
پس میآیم یک آرایه از کاراکترها ایجاد میکنم که برای اینکار با نوع داده اولیه char شروع میکنم و بعد هم یک جفت کروشه قرار میدهم و نام این آرایه رو chars میگذارم و بعد هم یک جفت آکولاد برای مقداردهی آن اضافه میکنم.
بعد پنج حرف کلمه hello رو کاراکتر کاراکتر داخل تک کوتیشن ها برایش تعریف میکنم.
هر کدام از این حرف ها میشوند یک کاراکتر. پس باید داخل یک جفت تک کوتیشن قرار بگیرند.
و می بینید که حالا من یک آرایه از کاراکترها دارم و میخواهم که آنرا به یک رشته تبدیلش کنم.
پس میآیم یک String تعریف میکنم و نامش را s6 میگذارم و با این متد سازنده String آنرا نمونه سازی میکنم و در اینجا از نسخه دوم سازنده استفاده میکنم که یک آرایه از کاراکترها رو میگیرد. پس متغیر chars رو میدهم به آن و بعد نتیجه رو در خروجی با دستور Sout نمایش میدهم و کلمه Hello رو به من نشان میدهد.
حالا بیایید ببینیم وقتی برعکس عمل کنیم چه اتفاقی میافتد.
یعنی وقتی یک رشته رو به آرایه ای از کاراکترها تبدیل کنیم چطور میشود.
خب؛ میآیم یک آرایه یک کاراکتری دیگر تعریف میکنم.
یعنی برای شروع نام این آرایه رو chars میگذارم و بعد هم یک جفت آکولاد برای مقداردهی آن اضافه میکنم و نامش رو chars2 میگذارم و مقدارش را با فراخونی یک متد نمونه از کلاس String با نام tochararray که در واقع به آنto character array هست، تعیین میکنم.
این متد دقیقاً همان چیزی رو برمیگرداند که دنبالش هستیم، یعنی یک آرایه از کاراکترها.
حالا برای چاپ این آرایه در خروجی باید در هر زمان یک کاراکتر رو در خروجی نمایش بدهیم. یعنی نمیشود یکجا یک آرایه رو در خروجی نمایش داد و باید به صورت تک تک هر آیتم رو در خروجی چاپ کنیم. پس میآیم از دستوری به نام حلقه for-each استفاده میکنم. این دستور رو قبلاً استفاده نکردیم و اولین باری است که میخواهم از آن استفاده کنم.
اول این دستور رو کامل مینویسم و بعد توضیحش میدهم. با کلمه کلیدی for شروع میکنم، بعد یک جفت پرانتز قرار میدهم و داخل پرانتز، اول نوع داده char رو مینویسم و بعد نام متغیر رو اضافه میکنم که c هست.
بعد یک دو نقطه و بعد نام آرایه ای که قرار است با آن کار کنم یعنی chars2 رو اضافه میکنم.
بعد با آکولاد باز و بسته محدوده بلاک کدم رو تعیین میکنم و داخل این بلاک کد، میآیم کاراکتر جاری یعنی c رو با دستور Sout در خروجی چاپ میکنم.
خب؛ حالا بیایید یک نگاهی به این دستور بیندازیم. داخل پرانتز اومدم گفتم که برای هر کاراکتر در آرایه کاراکتری chars2 اینکارها که داخل این بلاک کد هستند صورت بگیرد.
در هر بار تکرار حلقه روی یک آیتم یا کاراکتر کار میکنم و هر آیتمی که در هر بار تکرار حلقه با آن کار میکنم نوع داده آن char هست و نامش c هست و حلقه تا زمانی که آیتمی در آرایه در دسترس باشد؛ ادامه خواهد داشت. در آرایه هر بار فقط روی یک کاراکتر میشود کاری انجام داد و نمیشود یک عملیاتی رو به صورت یکجا روی کل آیتم های یک آرایه اعمال کرد و اون آیتم هم باید از جنس یک نوع داده اولیه باشد.
و نهایتاً؛ این هم نتیجه.
در آخر خروجی ها میبینیم که در هر خط یک کاراکتر از آرایه مان در خروجی نمایش داده شده و به این صورت که دارید می بینید، کلمه Hello به صورت عمودی در خروجی چاپ شده.
پس دیدیم که رشته ها میتوانند با استفاده از یک دستور نحوی ساده یا با استفاده از متدهای سازنده پیچیده تر ایجاد بشوند.
به هر حال تا این قسمت نحوه نمونه سازی از کلاس String رو یاد گرفتید و دیدید که در کلاس String به همه متدهای نمونه این کلاس که عضوی از این کلاس هستند میتوانیم دسترسی داشته باشیم. میتوانید همه چیز رو درباره این کلاس و اعضا آن؛ با نگاه کردن به اسناد API جاوا بفهمید و به راحتی یادشان بگیرید.
برای اینکار و رفتن به راهنما یا هلپ هم؛ کرسرم رو روی نام این کلاس قرار میدهم و کلیدهای Shift F1 رو فشار میدهم.
و میبینیم که اطلاعات مربوط به این کلاس از طریق سایت اوراکل بصورت آنلاین برای ما باز میشود و من در واقع به هلپ این نرم افزار هدایت میشوم.
بعد میآیم روی لینک METHOD و کلیک میکنم و در ایندکس جدیدی که باز میشود، هم می توانم، همه متدهای مختلفی که از این کلاس String در دسترس مان هستند را میبینیم.