۱. رشته (String) چیست؟ 🤔

در Kotlin، رشته‌ها برای ذخیره متن استفاده می‌شوند. رشته (String) مجموعه‌ای از کاراکترهاست که بین دو علامت نقل‌قول " قرار می‌گیرد.

🔹 مثال:

var greeting = "Hello"

برخلاف Java، در Kotlin لازم نیست مشخص کنیم که متغیر از نوع String است. چون Kotlin باهوش است و از وجود نقل‌قول‌ها می‌فهمد که greeting یک رشته است.

اگر بخواهید صراحتاً نوع متغیر را مشخص کنید، می‌توانید این کار را انجام دهید:

🔹 مثال:

var greeting: String = "Hello"

۲. تعریف متغیر String بدون مقدار اولیه 🎯

اگر بخواهید یک متغیر String ایجاد کنید اما مقدارش را بعداً مشخص کنید، باید نوع آن را هنگام تعریف تعیین کنید:

درست:

var name: String
name = "John"
println(name)

اشتباه: (خطا می‌دهد!)

var name
name = "John"
println(name)

در مثال دوم، چون نوع متغیر name مشخص نشده، Kotlin نمی‌تواند مقدار John را به آن اختصاص دهد.


۳. دسترسی به کاراکترهای رشته 🏆

برای گرفتن یک کاراکتر از داخل String، باید شماره‌ی ایندکس (index) آن را داخل [] بنویسید.

🔹 نکته: ایندکس‌ها از ۰ شروع می‌شوند.

🔹 مثال:

var txt = "Hello World"
println(txt[0]) // خروجی: H
println(txt[2]) // خروجی: l

📌 نحوه‌ی شمارش:

H  e  l  l  o     W  o  r  l  d
[0] [1] [2] [3] [4]  [5] [6] [7] [8] [9] [10]

۴. طول یک رشته 🏁

رشته‌ها در Kotlin دارای ویژگی‌ها و متدهای متنوعی هستند. مثلاً، با ویژگی length می‌توانیم تعداد کاراکترهای یک رشته را پیدا کنیم.

🔹 مثال:

var txt = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
println("طول این رشته: " + txt.length)

خروجی:

طول این رشته: 26

۵. متدهای کاربردی رشته‌ها 🎯

🔹 تبدیل حروف به بزرگ و کوچک 🔄

🔹 toUpperCase() → تمام حروف را به بزرگ تبدیل می‌کند.
🔹 toLowerCase() → تمام حروف را به کوچک تبدیل می‌کند.

🔹 مثال:

var txt = "Hello World"
println(txt.toUpperCase())   // خروجی: HELLO WORLD
println(txt.toLowerCase())   // خروجی: hello world

۶. مقایسه‌ی رشته‌ها ⚖

برای مقایسه‌ی دو String می‌توان از ()compareTo استفاده کرد. اگر مقدار ۰ برگرداند، یعنی دو رشته کاملاً یکسان هستند.

🔹 مثال:

var txt1 = "Hello World"
var txt2 = "Hello World"
println(txt1.compareTo(txt2))  // خروجی: 0 (چون برابرند)

۷. پیدا کردن متن داخل یک رشته 🔍

🔹 ()indexOf → موقعیت اولین وقوع یک متن خاص را در یک String برمی‌گرداند.

🔹 مثال:

var txt = "Please locate where 'locate' occurs!"
println(txt.indexOf("locate"))  // خروجی: 7

📌 توجه: ایندکس‌ها از صفر شروع می‌شوند.

۸. استفاده از نقل‌قول داخل رشته 📝

برای قرار دادن نقل‌قول داخل یک رشته، می‌توانید از (Single Quote) استفاده کنید.

🔹 مثال:

var txt1 = "It's alright"
var txt2 = "That's great"

۹. ترکیب دو رشته (Concatenation) 🔗

🔹 با استفاده از + می‌توان دو رشته را به هم متصل کرد:

var firstName = "John"
var lastName = "Doe"
println(firstName + " " + lastName)

📌 نکته: یک " " (فاصله‌ی خالی) بین دو رشته اضافه کردیم تا جدا باشند.

🔹 روش دیگر برای ترکیب رشته‌ها، ()plus است:

var firstName = "John "
var lastName = "Doe"
println(firstName.plus(lastName))

۱۰. قالب‌بندی متن (String Templates) 💡

در Kotlin، نیازی نیست که از + برای اتصال رشته‌ها استفاده کنید. به‌جای آن، می‌توان از String Templates استفاده کرد.

📌 کافی است متغیر را با $ بنویسید:

var firstName = "John"
var lastName = "Doe"
println("My name is $firstName $lastName")

مزایای استفاده از String Templates:
✔ خوانایی بهتر ✅
✔ نیاز به اضافه کردن " برای فاصله ندارید ✅
✔ کوتاه‌تر و ساده‌تر ✅


🔥 تمرین برای شما

۱. یک رشته بسازید که نام و نام خانوادگی شما را شامل شود و با استفاده از String Templates، جمله‌ای مثل زیر چاپ کنید:

نام من امیرحسین رضایی است.

۲. با استفاده از ()indexOf بررسی کنید که یک کلمه در متن شما وجود دارد یا نه.