متد valueOf در جاوا

متد valueOf برای کار با اعداد در جاوا

همانطور که در مقاله های دیگری هم در سایت توضیح داده ایم، کار با اعداد در جاوا نیازمند ابزارهایی است که کارهای مختلفی را بتوانند برای ما انجام بدهند. یکی دیگر از این ابزار ها متد valueOf در جاوا است که میتواند مقدار آبجکت های عددی را به انواع دیگر تبدیل کند. برای آشنایی با این متد با برنامه چی همراه باشید.(منبع نوشته: TutorialsPoint)


توضیحات و نحوه کار متد valueOf

متد valueOf آبجکت عددی (Number Object) مربوطی که نگهدارنده مقداری که به عنوان آرگومان به این متد پاس میدهیم را بر میگرداند. آرگومانی که به متد میدهیم میتواند از نوع داده اولیه، String یا موارد دیگر باشد.

این متد از نوع static (استاتیک) است. همچنین میتواند دو پارامتر ورودی دریافت نماید، یکی از آنها یک string و دیگری radix (یک عدد) است که در ادامه درباره آن توضیح میدهیم.


قواعد نوشتن (Syntax)

در قسمت پایینی انواع مختلف متد valueOf را مشاهده میکنید.

static Integer valueOf(int i)
static Integer valueOf(String s)
static Integer valueOf(String s, int radix)

پارامتر های ورودی

در زیر میتوانید جزئیات پارامتر ها را مشاهده کنید:

  • i – یک متغیر از نوع int که به نمایندگی Integer برگردانده میشود.
  • s – یک String که به نمایندگی Integer برگردانده میشود.
  • radix – این مورد برای این استفاده میشود که درباره مقدار Integer برگشت داده شده، بر اساس String پاس داده شده به متد، تصمیم گیری بشود.

مقادیر برگشتی

  • اگر پارامتر ورودی int باشد: این مدل یک آبجکت از نوع Integer را برمیگرداند که مقدار اولیه مشخصی که برای آن تعریف کرده ایم را نگهداری میکند.
  • اگر پارامتر ورودی String باشد: این مدل یک آبجکت Integer را برمیگرداند که مقدار نماینده string را درون خود نگهداری میکند.
  • اگر دو پارامتر ورودی String و radix داشته باشیم: این مدل یک آبجکت Integer برمیگرداند که مقدار integer را نگه میدارد که نماینده string است و توسط radix فیلتر شده است.

اگر تا اینجا چیز زیادی متوجه نشدین نگران نباشین، توی مثال ها خیلی راحت تر درباره ش توضیح میدیم.


Radix در این متد چگونه کار میکند؟

همانطور که در بالاتر هم گفتیم، یک مدل از متد valueOf هست که دو پارامتر ورودی دریافت میکند و دومین پارامتر آن همان Radix است. حالا شاید برای خیلی ها این سوال وجود داشته باشد که این radix چه تاثیری در عملکرد متد دارد؟ به عنوان مثال مقدار خروجی برای موردی که در مثال پایین میبینید و در آن از radix استفاده شده است، برابر با ۱۰۹۲ خواهد بود.

اتفاقی که رخ میدهد این است ک Radix مبنای عدد شماست. به عنوان یک برنامه نویس باید با مبنای عدد ها و تغییر مبنای آنها آشنا باشید. اتفاقی که در این متد رخ میدهد این است که Radix به عنوان مبنای فعلی عددی که به عنوان پارامتر اول وارد میکنید در نظر گرفته میشود. یعنی مثلا اینجا که ۱۶ را وارد کرده ایم، عدد ۴۴۴ از مبنای ۱۶ به مبنای ۱۰ تبدیل شده و مقدار آن ۱۰۹۲ میشود. (برای مبنا میتوانید از ابزار های آنلاین تبدیل مبنا استفاده کنید).

مثال

public class Test { 

   public static void main(String args[]) {
      Integer x =Integer.valueOf(9);
      Double c = Double.valueOf(5);
      Float a = Float.valueOf("80");
      Integer b = Integer.valueOf("444",16);

      System.out.println(x);
      System.out.println(c);
      System.out.println(a);
      System.out.println(b);
   }
}

همانطوری که در مثال بالا مشاهده میکنید، چهار متغیر به ترتیب از نوع های Integer، Double، Float و Integer تعریف کرده ایم و برای مقدار دهی به آنها از متد valueOf استفاده کردیم. به عنوان اولین مدل را از نوع Integer.valueOf(9) استفاده شده است. این مرحله مقدار ۹ را ابتدا به int تبدیل میکند و سپس درون متغیر x قرار میدهد. دستور بعدی هم دقیقا همین روند را تکرار میکند با این تفاوت که مقدار را به نوع Double تبدیل میکند و درون c قرار میدهد.

در متغیر سوم مشاهده میکنید که یک رشته درون دابل کوتیشن (علامت نقل قول) قرار گرفته است. مقدار این رشته به نوع Float تبدیل میشود و میتوانید در خروجی مشاهده کنید که عدد ۸۸ با دقت یک رقم اعشار تولید شده است. در مورد دستور آخر هم باید دقت کنید که دو پارامتر ورودی به متد پاس داده ایم. اولین پارامتر یک رشته است که درون دابل کوتیشن قرار گرفته است. پارامتر دوم هم همان radix است که در بالا درباره آن توضیح دادیم.

این کدها خروجی زیر را تولید میکنند.

خروجی

۹
۵٫۰
۸۰٫۰
۱۰۹۲

سوالات خودتان را بپرسید

در این مقاله آموزشی درباره متد valueOf صحبت کردیم. شاید در این باره سوالاتی در ذهن شما وجود دارد و شاید در قسمت هایی نیاز به توضیحات بیشتری وجود داشته باشد. میتوانید همه سوالات خودتان را در قسمت نظرات (همین پایین) بنویسید تا به سرعت به آنها پاسخ بدهیم.

درباره نویسنده

دیدگاه‌ خود را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

اسکرول به بالا