در آموزش قبل با برخی از دیتا تایپهای به اصطلاح Primitive Type آشنا شدیم و در این آموزش قصد داریم تا با مجموعۀ دیتا تایپهای دیگری از نوع Reference Type آشنا شده و یکی از پرکاربردترین آنها به نام String
را معرفی کرده و در ادامه به تشریح کاربردهای این نوع داده در قالب چند مثال کاربردی بپردازیم.
به طور کلی، دیتا تایپ String
به منظور نگهداری و ذخیرهسازی مقادیر دادهای متشکل از کاراکترها، کلمات، عبارات، جملات، اعداد، علائم و غیره مورد استفاده قرار میگیرد که با کنار هم قرار دادن آنها میتوان جملهای را تشکیل داد و از همین روی چنانچه نیاز به استفاده از جملهای در برنامه داشته باشیم، با بهکارگیری نوع دادۀ String
میتوانیم متغیری تعریف کرده و دیتای مورد نظر را در آن ذخیره کنیم (توجه داشته باشیم که این نوع داده بر خلاف سایر دیتا تایپها با حرف بزرگ شروع میشود.)
در حقیقت، انواع دادۀ به اصطلاح Reference Type متفاوت از هشت دیتا تایپ Primitive Type بوده و از جنس کلاسی از پیش تعریفشده در زبان برنامهنویسی جاوا میباشند که به منظور تعریف متغیر با استفاده از آنها میباید نمونهای از روی کلاس مد نظر ساخته و مقادیر دادهای را بدان اختصاص داد. حال جهت تعریف متغیر با بهکارگیری این دیتا تایپ نیاز است تا نمونهای از روی کلاس String
ایجاد کرده و استرینگ مربوطه را به آن منتسب کرد به طوری که به طور مثال داریم:
String myString = "My Name Is Behzad";
در دستور فوق، آبجکتی تحت عنوان myString
از روی کلاس از پیش تعریفشدۀ String
ایجاد کرده و استرینگ «My Name Is Behzad» را داخل علائم " "
بدان اختصاص دادهایم (در آموزشهای آتی به تفصیل مفاهیم کلاس، آبجکت و ساخت نمونه از روی یک کلاس را تشریح خواهیم کرد.)
یکی از ابتداییترین راهکارها به منظور نمایش دادن جملهای در زبان برنامهنویسی جاوا، استفاده از دستور زیر میباشد که در آموزشهای گذشته به بررسی ساختار و نحوۀ عملکرد آن پرداختیم:
System.out.println();
اکنون جهت نمایش استرینگ «My Name Is Behzad» در کنسول، کدی مانند زیر خواهیم داشت:
public class Test {
public static void main(String[] args) {
String myString = "My Name Is Behzad";
System.out.println(myString);
}
}
در نتیجۀ اجرای کد فوق، استرینگ منتسب به متغیر myString
به صورت زیر در کنسول نمایش داده میشود:
My Name Is Behzad
نکتۀ قابلتوجه در رابطه با استرینگ فوق این است که علائم " "
به همراه استرینگ مذکور در کنسول نمایش داده نمیشوند. به علاوه، چنانچه بخواهیم از طولانی شدن سورسکد جلوگیری کنیم، به جای تعریف آبجکتی از جنس String
و در ادامه اختصاص مقدار استرینگ مد نظر به آن سپس پاس دادن آبجکت مذکور به متد ()println
به راحتی میتوانیم استرینگ مورد نظر خود را به عنوان آرگومان ورودی به متد ()println
پاس دهیم. به عبارت دیگر، کد فوق را میتوانیم به شکل زیر تغییر دهیم:
public class Test {
public static void main(String[] args) {
System.out.println("My Name Is Behzad");
}
}
خروجی حاصل از اجرای هر دو کد یکسان میباشد. همچنین نکتۀ حائز اهمیت در رابطه با متد ()println
این است که با بهکارگیری متد مذکور میتوان دو یا چند استرینگ دلخواه را در کنسول به نمایش در آورد که برای درک بهتر این موضوع کد زیر را مد نظر قرار میدهیم:
public class Test {
public static void main(String[] args) {
System.out.println("My Name Is Behzad");
System.out.println("My Last Name is Moradi");
}
}
در این مثال، هر دو استرینگ مربوطه داخل علائم " "
قرار گرفته و به عنوان آرگومان ورودی به متد ()println
داده شدهاند که در نتیجۀ اجرای این کد خواهیم داشت:
My Name Is Behzad
My Last Name is Moradi
در واقع، اجرای دستورات فوق منجر به چاپ استرینگهای مربوطه در دو سطر جداگانه شدهاند که این موضوع بیانگر تفاوت متدهای ()println
و ()print
میباشد به طوری که متد ()println
به منظور نمایش استرینگها در دو سطر جدا به کار گرفته میشود در حالی که متد ()print
استرینگ مد نظر را به صورت پشت سر هم و در یک خط چاپ میکند که برای روشن شدن وجه تمایز دو متد، مثال قبل را به صورت زیر با بهکارگیری متد ()print
بازنویسی میکنیم:
public class Test {
public static void main(String[] args) {
System.out.print("My Name Is Behzad ");
System.out.print("My Last Name is Moradi");
}
}
در نتیجۀ اجرای کد فوق، استرینگهای مربوطه به صورت زیر در کنسول نمایش داده میشوند:
My Name Is Behzad My Last Name is Moradi
همانطور که میبینیم، استفاده از متد ()print
منجر به چاپ دو استرینگ به صورت پشت سر هم شده است و علائم " "
نیز به همراه استرینگهای مربوطه در کنسول نمایش داده نمیشوند اما در برخی شرایط نیاز به استفاده از علائم دابلکوتیشن جهت تأکید روی واژهای خاص در استرینگ مد نظر داریم که برای این منظور میتوانیم کلمۀ مورد نظر را داخل علائمی به صورت "\ "\
قرار دهیم. برای مثال، در کد زیر قصد داریم تا واژهٔ «Java» را داخل علائم مذکور در کنسول نمایش دهیم:
public class Test {
public static void main(String[] args) {
System.out.print("I like the \"Java\" Programming Language");
}
}
در واقع، در کد فوق استرینگی به صورت «I like the "Java" Programming Language» با تأکید روی واژۀ «Java» تعریف کردهایم که برای این منظور نیز واژۀ مورد نظر را داخل علائم "\ "\
از استرینگ مربوطه قرار دادهایم که خروجی حاصل از اجرای کد فوق به صورت زیر خواهد بود:
I like the "Java" Programming Language
همانطور که انتظار داشتیم، واژۀ «Java» داخل دابلکوتیشن قرار گرفته و به همراه استرینگ مربوطه در کنسول نمایش داده میشود. همچنین میتوان از علائم دیگری نظیر t\
و n\
پس از واژۀ مورد نظر استفاده کرد و نحوۀ کار آنها نیز بدین صورت است که با قرار دادن هر یک از علائم مذکور پس از واژۀ مد نظر، به ترتیب یک تَب و یک سطر فاصله پس از آن در استرینگ متناظر ایجاد شده و در کنسول نمایش داده میشوند. به عنوان مثال، اگر بخواهیم دو کلمۀ «Programming Language» را در سطر بعد چاپ نماییم، از دستور زیر استفاده خواهیم کرد:
public class Test {
public static void main(String[] args) {
System.out.print("I like the \"Java\" \nProgramming Language");
}
}
در نتیجۀ اجرای کد فوق، استرینگی به صورت زیر و در دو سطر جداگانه در کنسول چاپ میشود:
I like the "Java"
Programming Language
همانطور که انتظار داشتیم، قرار دادن علائم n\
پس از کلمۀ «Programming» منجر به چاپ ادامهٔ استرینگها پس از آن در سطر بعدی شده است.
آشنایی با نحوهٔ کانکت کردن استرینگها در زبان جاوا
واژۀ Concatenation در زبان برنامهنویسی جاوا به مفهومی اطلاق میگردد که در آن دو یا چند مقدار به یکدیگر الحاق شده و یک مقدار واحد را تشکیل میدهند. به طور مثال، در برخی موارد نیاز داریم تا یک عبارت بسیار طولانی را در کنسول به نمایش در آوریم که در این صورت میتوانیم از اپراتور +
استفاده کرده و استرینگ مد نظر را با کانکت کردن دو یا چند استرینگ کوتاهتر در کنسول چاپ کنیم (در آموزشهای آتی به طور مفصل پیرامون اپراتورها صحبت خواهیم کرد.) برای روشن شدن این مطلب، مثال زیر را مد نظر قرار میدهیم:
public class Test {
public static void main(String[] args) {
System.out.print("I like the \"Java\" Programming Language." +
"This language is used to create android apps.");
}
}
همانطور که مشاهده میشود، هر یک از دو استرینگ کوتاهتر را داخل علائم " "
قرار داده و با استفاده از عملگر +
با یکدیگر کانکت کردهایم که در نهایت استرینگی متشکل از دو استرینگ فوقالذکر در کنسول چاپ میشود (لازم به ذکر است که اِعمال عملگر +
روی دادههایی از جنس int
منجر به جمع شدن مقادیر عددی میشود اما در مورد مقادیر استرینگ، اپراتور +
هر یک از آنها را با سایر استرینگها کانکت میکند.)
به علاوه، در برخی موارد نیاز است تا مقادیری از نوع دادۀ استریگ را در کنار سایر مقادیر با دیتا تایپهای مختلفی نظیر int
یا double
در محیط کنسول نمایش دهیم که برای آشنایی با نحوۀ انجام چنین کاری مثال زیر را در نظر میگیریم:
public class Test {
public static void main(String[] args) {
int studentNumber = 12;
int teacherNumber = 3;
System.out.println("The number of students is " + studentNumber);
System.out.println("The number of teachers is " + teacherNumber);
}
}
در مثال فوق، با بهکارگیری نوع دادۀ int
دو متغیر تحت عناوین studentNumber
و teacherNumber
تعریف کرده و به ترتیب مقادیر عددیِ 12 و 3 را به آنها اختصاص دادهایم. در ادامه، قصد داریم تا هر یک از اعداد مذکور را با استرینگی کانکت کرده و در کنسول نمایش دهیم که برای این منظور لازم است تا پس از علامت "
در انتهای استرینگ مد نظر عملگر +
را قرار داده سپس نام متغیر مربوطه را بنویسیم.
در چنین شرایطی، با اجرای کد فوق هر یک از اعداد تعریفشده به همراه استرینگهای متناظرشان در محیط کنسول نمایش داده میشوند بدین معنی که عملگر +
قابلیت الحاق مقداری از نوع دادۀ int
به مقداری از جنس String
را دارا است و بدین ترتیب خروجی حاصل از اجرای کد فوق به صورت زیر خواهد بود:
The number of students is 12
The number of teachers is 3
همانطور که میبینیم، هر یک از اعداد منتسب به متغیرهای studentNumber
و teacherNumber
با استرینگهای متناظرشان کانکت شده و در کنسول نمایش داده میشوند.