بکندباز

متد format()‎ در جاوا

در این آموزش با استفاده از مثال هایی با متد format()‎ آشنا می شویم.

متد format()‎ یک رشته را بر اساس آرگومان ارسال شده فرمت کرده و رشته فرمت شده را برمی گرداند.


مثال 3: فرمت دهی رشته با چند شاخص فرمت

شما می توانید از بیش از یک فرمت مشخص کننده در رشته فرمت استفاده کنید. دقیقاً به تعداد شاخص هایی که در رشته srt آمده است باید در args متغیر های جایگزین را ارسال کنیم. در مثال زیر دو شاخص فرمت در رشته آمده است و به ترتیب دو متغیر با همان نوع به عنوان آرگومان به format ارسال شده است.

// using more than one format specifiers
// in a format string
class Main {
  public static void main(String[] args) {
    int n1 = 47;
    String text = "Result";

    System.out.println(String.format("%s\nhexadecimal: %x", text, n1));


  }
}

خروجی

Result
hexadecimal: 2f

در اینجا، %sبا مقدار text که یک String است جایگزین شده است. به همین ترتیب، %oبا n1 که یک مقدار هگزادسیمال است جایگزین می شود.

در طول قالب بندی رشته در جاوا، مشخص کننده قالب با مقدار شی جایگزین می شود

مثال 4: قالب بندی اعداد اعشاری

class Main {
  public static void main(String[] args) {

    float n1 = -452.534f;
    double n2 = -345.766d;

    // format floating-point as it is
    System.out.println(String.format("n1 = %f", n1)); // -452.533997

    System.out.println(String.format("n2 = %f", n2)); // -345.766000

    // show up to two decimal places
    System.out.println(String.format("n1 = %.2f", n1)); // -452.53

    System.out.println(String.format("n2 = %.2f", n2)); // -345.77
  }
}

خروجی

n1 = -452.533997
n2 = -345.766000
n1 = -452.53
n2 = -345.77

توجه: وقتی با استفاده از شاخص %f عدد -452.534 را فرمت می کنیم، -452.533997 را دریافت می کنیم . این به خاطر متد format()‎ نیست. جاوا نمایش دقیق اعداد ممیز شناور را بر نمی گرداند .

هنگامی که از شاخص فرمت %.2f استفاده می شود، format()‎ تا دو عدد بعد از نقطه اعشار را نمایش می دهد.


مثال 5: پر کردن اعداد با فاصله و 0

اگر در کد شاخص ها، بین علامت درصد (%) و حرف یک عدد قرار دهیم، به اندازه آن عدد، فاصله خالی چاپ می شود. مثلاً اگر به جای %d بنویسیم %5d، 5 فاصله خالی گذاشته می شود و پس از آن عدد جایگزین شده قرار می گیرد. حال اگر به جای %5d بنویسیم %05d به جای 5 فاصله خالی، 5 تا 0 قرار داده خواهد شد.

%+d: علامت عدد صحیح را نیز نمایش می دهد.

%(d: عدد جایگزین شده را بین پرانتز قرار می دهد.

// using more than one format specifiers
// in a format string
class Main {
  public static void main(String[] args) {
    int n1 = 46, n2 = -46;
    String result;

    // padding number with spaces
    // the length of the string will be 5
    result = String.format("|%5d|", n1); // |   46|

    System.out.println(result);

    // padding number with numbers 0
    // the length of the string will be 5
    result = String.format("|%05d|", n1); // |00046|

    System.out.println(result);

    // using signs before numbers
    result = String.format("%+d", n1); // +46

    System.out.println(result);

    result = String.format("%+d", n2); // -46

    System.out.println(result);

    // enclose negative number within parenthesis
    // and removing the sign
    result = String.format("%(d", n2); // (46)

    System.out.println(result);
  }
}

مثال 6: استفاده از 0x و 0 قبل از هگزادسیمال و اکتال

با قرار دادن یک علامت # در شاخص های هگزادسیمال و اکتال، قبل از عدد اکتال یک 0 و قبل از عدد هگزادسیمال یک 0x قرار می گیرد که فرمت مرسوم نمایش آن ها است.

// using 0x before hexadecimal
// using 0 before octal
class Main {
  public static void main(String[] args) {
    int n = 46;

    System.out.println(String.format("%#o", n)); // 056
    System.out.println(String.format("%#x", n)); // 0x2e

  }
}

متد format()‎ با Locale

متد format()‎ دارای سینتکس دیگری نیز است، برای زمانی که باید با یک زبان محلی مشخص کار کنید .

String.format(Locale l,
              String format, 
              Object... args)

نکته: در آلمان اعداد صحیح به جای کاما از نقطه برای جدا کردن اعداد استفاده می کنند.

zohreh

مدیر وب سایت بکندباز

دیدگاه‌ها

*
*