تبدیل مقادیر اولیه به رشته ها

در این درس از دوره آموزشی جاوا، به بررسی روشهای تبدیل دادههای اولیه (Primitive Values) مانند int
، double
، boolean
و … به نوع داده String
پرداخته میشود. درک این فرآیند برای مدیریت دادهها، نمایش اطلاعات و تعامل با کاربران ضروری است. در این آموزش، روشهایی همچون استفاده از String.valueOf()
، بهرهگیری از کلاسهای Wrapper مانند Integer.toString()
و تکنیک الحاق (+
) برای تبدیل خودکار دادهها به رشته توضیح داده میشود. همچنین، مزایا و معایب هر روش مورد بررسی قرار گرفته تا توسعهدهندگان بتوانند بهترین گزینه را متناسب با نیازهای خود انتخاب کنند. این درس برای برنامهنویسانی که به دنبال افزایش مهارت در پردازش دادههای متنی در جاوا هستند، بسیار مفید خواهد بود.
من قبلاً برای شما توضیح دادم که چطوری میتوانید مقادیر از جنس نوع داده های اولیه رو به رشته ها اضافه کنید، درست مثل، زمانی که میخواهیم خروجی ای در کنسول داشته باشیم و با اینکار اون متغیرهای اولیه به رشته تبدیل میشدند، علاوه بر اون روش میتوانید مستقیماً متغیرهای از جنس نوع داده های اولیه رو با استفاده از کلاس های کمکی نوع داده های مختلف به رشته ها تبدیل کنید.
حالا در این بخش از آموزش میخواهم به شما نشان بدهم که چطوری میشود به صورت مستقیم این متغیرهای اولیه رو به رشته ها تبدیل کنید.
من در حال کار روی پروژه ای با نام PrimitivesToStrings هستم. به طوری که سه متغیر تعریف کردم.
یکی از جنس اینتیجر، یک بولین، و یک long. و حالا میخواهم هر سه تای این متغیرها رو به string تبدیل کنم.
برای اینتیجر، از یک کلاس کمکی استفاده میکنم. پس میآیم و در خط جدید یک متغیر string جدید ایجاد میکنم و نامش را fromInt میگذارم و مقدارش را با استفاده از کلاس Integer تعیین میکنم.
همانطور که در منوی پیشنهادی مشاهده می کنیم؛ این کلاس یک تعداد متد دارد که میتوانیم از آنها استفاده کنیم.
علاوه بر راحترین متد در دسترس یعنی toString، متدهای دیگر هم مثل toBinaryString، toHexString و toOctalString وجود دارند و حتی یک متدی داریم با نام toUnsignedString.
به شما توصیه میکنم که این متدها رو بکار ببرید و امتحان شان کنید تا با کارایی آنها بیشتر آشنا بشوید، ولی خب من فعلاً از این متد ساده toString اینجا استفاده میکنم.
و بعد مقداری رو که میخواهم تبدیل به رشته کنم رو؛ با intValue؛ به عنوان آرگومان وارد میکنم.
بعد نتیجه رو در خروجی کنسول با صدا زدن دستور System.out.println نمایش میدهم، و متغیر fromInt ام رو به این دستور میدهم.
و وقتی سریع با میانبرهای شیفت و F10 از کدم اجرا بگیرم، میبینیم که خروجی ای که انتظارش را داشتیم برایمان نشان میدهد، یعنی عدد ساده 42.
خب، حالا میخواهم همان کار رو با این متغیر boolean کنم.
یکبار دیگر یک رشته تعریف میکنم.
اینبار نامش رو fromBool میگذارم، و مقدارش رو با استفاده از کلاس کمکی Boolean تعیین میکنم.
یادتان باشد که همه کلاس های کمکی با حرف بزرگ شروع میشوند.
کلاس کمکی Boolean فقط یک متد toString دارد و همانطور که در لیست پیشنهادی می بینید، این کلاس اون انوع متدهای مختلفی که کلاس های کمکی اعداد داشتند رو، چند لحظه پیش دیدین شان رو ندارد.
خب؛ متد toString رو برای آن صدا میزنم و مقدار مورد نظرم رو ایندفعه با Boolvalue به آن میدهم و بعد اون رو در خروجی نمایش میدهم، و متغیر fromBool ام رو به این دستور میدهم.
و بعد از اجرا برنامه میبینیم که همانطور که انتظارش رو داشتیم مقدار true رو در خروجی نمایش میدهد.
خب؛ وقتی از کلاس های کمکی برای نوع داده های اولیه و متدهای toString شان استفاده میکنید، محدود میشوید به اینکه متغیرهایتان رو به یک فرمت دیفالت و خاصی از رشته ها تبدیل کنید. البته علاوه بر این کلاس های مفید دیگری هم در رانتایم جاوا وجود دارند که میتوانند فرمت های پیچیده تری را ایجاد کنند.
این متغیر long مقدارش روی 10000000 تنظیم شده. توجه داشته باشید که استفاده از underscore ها در این عدد برای جدا کردن صفرها بکار میرود.
که فقط باعث میشود مقادیر عددی خواناتر بشوند و هیچ تأثیری روی نحوه کامپایل شان ایجاد نمیکند. استفاده از underscore ها به عنوان جدا کننده در کدها در جاوا 7 ارائه شد، و باعث شد تا نگاه کردن و خواندن مقادیر عددی long راحت تر بشود.
ولی برای قالب بندی و تبدیل این مقدار به یک رشته، میخواهم از یک کلاسی با نام NumberFormat استفاده کنم.
خب؛ توجه داشته باشید که این کلاس عضوی از یک پکیجِ متفاوت است و بخشی از پکیج java.lang نیست.
پس وقتی آنرا انتخاب کنم، IntelliJ IDEA میآید به صورت اتوماتیک عبارت ایمپورت این پکیج رو در خط سوم اضافه میکند.
این ایمپورت باعث میشود که بتوانیم کلاس NumberFormat رو در کدمان بکار ببریم.
خب؛ من نام این شیء رو formatter میگذارم، و با صدا زدن یک متد از کلاس NumberFormat با نام getNumberInstance، مرجعِ این شیء رو بدست میآورم.
دقت کنید که در این لیست پیشنهادی علاوه بر این متد، متدهای getIntergerInstance، getCurrencyInstance و getPercentInstance هم در این کلاس وجود دارند.
خب؛ حالا string ام رو ایجاد میکنم و نامش رو formatted میگذارم و مقدارش رو با فراخوانی دستور formatter.format و دادن متغیر longValue ام به آن دستور بدست میآورم.
بعد میآیم متغیر formatted رو با Sout در خروجی کنسول نمایش میدهم و یک ران الان میگیرم و این هم نتیجه.
وقتی که رشته ایجاد میشود، علامت کاما بعنوان جداکننده ارقام اضافه میشود. در حال حاضر علامت کاما رو در این عدد میبینیم. چونکه هنگامِ نصب سیستم عاملم بسته به لوکیشن و موقعیت تعریف شده برای سیستم عامل در مراحل نصب؛ من در یکای آمریکایی US قرار گرفته بودم و نرم افزار intellij idea هم بالطبع دارد از همین یکا تبعیت میکند و به همین خاطر هم کاماها رو در عدد ده میلیون می بینم. ولی اگر شما لوکیشن های دیگری مثل یکای امپریال رو برایش تعریف کنید بسته به محل انتخابی تان این جدا کننده میتواند متفاوت باشد، مثلاً ممکن است بسته به استانداردتان بجای کاما از نقطه استفاده بشود. ولی با استفاده از کلاس NumberFormat، درواقع روی همه این ویژگی ها کنترل دارید و میتوانید این ویژگیها رو تغییر بدهید. میتوانید لوکیشن و یکای مد نظرتان یا محل تان را تغییر بدهید، یا اینکه میتوانید صراحتاٌ بگوید که جداکننده تان چه کاراکتری باشد، و یا با آن میتوانید هر عملیاتی رو روی فرمت تان اعمال کنید.
من بعداً در مورد روش های پیچیده تر و پیشرفته تر تبدیل اعداد به رشته ها صحبت خواهم کرد. ولی فعلاً، در این بخش از آموزش رویکردهای مختلف تبدیل متغیرهای اولیه رو به رشته ها با استفاده از متدهای toString کلاس های کمکی و یا با استفاده از ابزارهای formatting ای که عضوی از پکیج java.text بودند رو دیدیم.