String in java | رشته ها در جاوا
📖توضیحات درس
📄جزوه
مفاهیم کلیدی
-
String
در زبان جاوا، رشته یاStringبه عنوان یک دنباله از کاراکترها (Sequence of Characters) تعریف میشود. برخلاف انواع داده ساده،Stringیک کلاس از پیش تعریف شده است و دادههای آن به صورت شیء (Object) در حافظه مدیریت میشوند. -
Non-Primitive Type
رشتهها در جاوا جزو ۸ نوع داده اصلی (int,boolean,doubleو غیره) نیستند. این یعنی رشتهها یک نوع مرجع (Reference Type) محسوب میشوند و ویژگیها و متدهای خاص خود را دارند. -
Method length
این متد تعداد کاراکترهای موجود در یک رشته را به صورت یک عدد صحیح (int) بازمیگرداند. -
Method charAt
برای دسترسی به یک کاراکتر خاص در یک موقعیت مشخص (Index) از رشته استفاده میشود. ایندکسها در جاوا از صفر شروع میشوند. -
Method toCharArray
این متد کل رشته را به یک آرایه از کاراکترها (char[]) تبدیل میکند تا بتوان به راحتی با استفاده از حلقهها روی تکتک اعضا پیمایش کرد. -
Method equals
این متد برای مقایسه محتوای دو رشته با یکدیگر استفاده میشود. در جاوا برای بررسی برابری مقدار دو رشته، حتماً باید از این متد به جای عملگر==استفاده کرد. -
Method substring
برای استخراج بخشی از یک رشته (زیررشته) استفاده میشود. این متد میتواند نقطه شروع یا بازهای از شروع تا پایان را دریافت کند. -
Concatenation
عمل چسباندن دو یا چند رشته به یکدیگر که هم از طریق متدconcatو هم با استفاده از عملگر+امکانپذیر است.
نکات مهم مصاحبهای
-
تفاوت عملگر
==با متدequalsدر چیست؟
عملگر==آدرس حافظه (Reference) دو شیء را با هم مقایسه میکند، در حالی که متدequalsمحتوای متنی داخل رشتهها را بررسی میکند. برای رشتهها همیشه باید ازequalsاستفاده کرد. -
چرا رشتهها در جاوا Primitive Type نیستند؟
چون رشتهها اشیائی از کلاسStringهستند که متدهای آماده زیادی برای پردازش متن در اختیار برنامهنویس قرار میدهند، در حالی که انواعprimitiveفقط مقادیر ساده را ذخیره میکنند و متد ندارند. -
خروجی متد
substring(3, 5)شامل چه کاراکترهایی است؟
این متد از ایندکس ۳ شروع کرده و تا قبل از ایندکس ۵ را برمیگرداند (یعنی کاراکترهای ایندکس ۳ و ۴). کاراکتر مربوط به ایندکس پایانی در خروجی لحاظ نمیشود. -
تأثیر دستور
returnدر وسط یک متد چیست؟
به محض اجرای دستورreturnدر هر جای متد، اجرای آن متد بلافاصله متوقف شده و مقدار مشخص شده به فراخوانکننده بازگردانده میشود؛ کدهای بعد از آن خط دیگر اجرا نخواهند شد.
مثال یا سناریوی کاربردی
سناریو: اعتبارسنجی شماره موبایل در این مثال، برنامهای طراحی شده که یک رشته را از کاربر میگیرد و بررسی میکند که آیا طبق استانداردهای تعریف شده یک شماره موبایل معتبر است یا خیر.
مراحل منطقی: ۱. ابتدا طول رشته بررسی میشود که باید دقیقاً ۱۱ کاراکتر باشد. ۲. بررسی میشود که رشته با پیششماره "09" شروع شده باشد. ۳. تمام کاراکترها باید عدد باشند (نباید شامل حروف یا علامت باشد).
نمونه کد خلاصه شده:
public static boolean isValidPhone(String phone) {
// شرط اول: طول رشته
if (phone.length() != 11) return false;
// شرط دوم: شروع با 09
if (!phone.startsWith("09")) return false;
// شرط سوم: بررسی عدد بودن تمام کاراکترها
for (int i = 0; i < phone.length(); i++) {
if (!Character.isDigit(phone.charAt(i))) {
return false;
}
}
return true; // اگر تمام شروط پاس شد
}
بیشتر بدانید
-
تفاوت
nextوnextLine:
در کلاسScannerبرای گرفتن ورودی از کاربر، متدnextرشته را فقط تا اولین فاصله (Space) میخواند، اماnextLineکل خط ورودی را به همراه فاصلهها دریافت میکند. -
کلاس Character:
این کلاس متدهای کاربردی مفیدی مانندisDigit(بررسی عدد بودن)،isLetter(بررسی حرف بودن) وisWhitespace(بررسی فاصله بودن) دارد که در پردازش رشتهها بسیار راهگشا هستند. -
تغییر حالت حروف:
با استفاده از متدهایtoLowerCaseوtoUpperCaseمیتوانید کل رشته را به حروف کوچک یا بزرگ تبدیل کنید که در جستجوهای غیرحساس به حروف (Case-insensitive) بسیار کاربردی است. -
بررسی وجود زیررشته:
متدcontainsبررسی میکند که آیا یک عبارت خاص در دل یک رشته بزرگتر وجود دارد یا خیر و خروجی آن به صورتbooleanاست.
