English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

تعليمية Java الأساسية

Java التحكم في العملية

Java المتجهات

Java التوجيه إلى الكائنات (I)

Java التوجيه إلى الكائنات (II)

Java التوجيه إلى الكائنات (III)

معالجة الاستثناءات Java

Java القوائم (List)

Java Queue (الطابور)

Java Map المجموعات

Java Set المجموعات

Java الدخول والخروج (I/O)

Java Reader/Writer

Java 其他主题

Java String format() 使用方法及示例

طرق Java String (النص)

Java String format()方法根据传递的参数返回格式化的字符串。

String format()方法的语法为:

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

ملاحظة:

  • format()是静态方法。我们使用类名String调用format()方法。

  • 在上面的代码中,... 表示可以向format()传递多个对象。

format()参数

  • format - 格式字符串

  • args - 0个或更多参数

format()返回值

  • 返回格式化的字符串

示例1:Java String format()

class Main {
  public static void main(String[] args) {
    String language = "Java";
    int number = 30;
    String result;
    // 将对象格式化为字符串
    result = String.format("Language: %s", language);
    System.out.println(result); // Language: Java
    //将数字格式化为十六进制数字
    result = String.format("十六进制数: %x", number); // 1e
    System.out.println(result); // 十六进制数: 1e
  }
}

在上面的程序中,注意代码

result = String.format("Language: %s", language);

这"Language: %s"是一个格式字符串

将格式字符串中的%s替换为language内容。%s是格式说明符。

同样,%x替换为String.format("Number: %x", number)中number的十六进制值。

格式说明符

以下是常用的格式说明符:

说明符描述
%b, %B根据参数为“ true”或“ false”
%s, %S一个字符串
%c, %CUnicode字符
%d十进制整数(仅用于整数)
%o八进制整数(仅用于整数)
%x, %X十六进制整数(仅用于整数)
%e, %E用于科学计数法(用于浮点数)
%f用于十进制数字(用于浮点数)

示例2:数字的字符串格式

class Main {
  public static void main(String[] args) {
    int n1 = 47;
    float ٢ ٣ = ٣.864f;
    double ٢ ٣ ٤ = ٤45343435.76d;
    //格式为八进制数字
    System.out.println(String.format("n1的八进制: %o", n1)); // 57
    //格式为十六进制数字
    System.out.println(String.format("n1的十六进制: %x", n1)); // 2f
    System.out.println(String.format("n1的十六进制: %X", n1)); // 2F
    //格式化为字符串
    System.out.println(String.format("n1作为字符串: %s", n1)); // 47
    System.out.println(String.format("n2作为字符串: %s", n2)); // 35.864
    //科学记数格式
    System.out.println(String.format("n3科学计数法: %g", n3)); // 4.45343e+07
  }
}

نتيجة الإخراج

n1的八进制: 57
n1的十六进制: 2f
n1的十六进制: 2F
n1作为字符串: 47
n2作为字符串: 35.864
n3科学计数法: 4.45343e+07

您可以在格式字符串中使用多个格式说明符。

示例3:使用多个格式说明符

//使用多个格式说明符
//格式字符串
class Main {
  public static void main(String[] args) {
    int n1 = 47;
    String text = "Result";
    System.out.println(String.format("%s
十六进制: %x", text, n1));
  }
}

نتيجة الإخراج

Result
十六进制: 2f

此处,%%s被替换为text的值。 同样,%%o被替换为n1的十六进制值。

Java String format()的工作

示例4:十进制数的格式

class Main {
  public static void main(String[] args) {
    float n1 = -452.534f;
    double n2 = -345.766d;
    //按原样格式化浮点数
    System.out.println(String.format("n1 = %f", n1)); // -452.533997
    System.out.println(String.format("n2 = %f", n2)); // -345.766000
    //显示到小数点后两位
    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

ملاحظة:عند استخدام تنسيق الفورمات -452.534، نحصل على -452.533997. هذا ليس بسبب طريقة format(). لا يقدم Java تمثيلاً دقيقاً للعدد العشري.

عند استخدام معرف التنسيق %.2f، يقدم format() اثنين من الأرقام بعد النقطة.

مثال 5: ملء الرقم بالمسافات و 0

// 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;
        // ملء الرقم بالمسافات
        // طول الكلمة هو 5
    result = String.format("|%5d|", n1); // |         46|
    System.out.println(result);
        // ملء الرقم بـ 0
        // طول الكلمة هو 5
    result = String.format("|%05d|", n1); // |00046|
    System.out.println(result);
    // استخدام الرمز قبل العدد
    result = String.format("%+d", n1); // +46
    System.out.println(result);
    result = String.format("%+d", n2); // -46
    System.out.println(result);
        // وضع العدد السالب بين الأقواس
        // وإزالة الرمز
    result = String.format("%(d", n2); // (46)
    System.out.println(result);
  }
}

مثال 6: استخدام 0x و 0 قبل الثمانية عشرية والثمانية

// قبل استخدام الستة عشر استخدم 0x
// قبل استخدام الثمانية استخدم 0
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
  }
}

Java String format() مع بيئة اللغة

إذا كان من الضروري استخدام بيئة اللغة المحددة، فإن طريقة String format() لديها جملة أخرى.

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

مثال 7: استخدام بيئة اللغة GERMAN في format()}

//استخدام Locale
import java.util.Locale;
class Main {
  public static void main(String[] args) {
    int number = 8652145;
    String result;
    //استخدام بيئة اللغة الحالية
    result = String.format("الرقم: %,d", number);
    System.out.println(result);
    //استخدام بيئة اللغة GERMAN كمعامل أول
    result = String.format(Locale.GERMAN, "الرقم الألماني: %,d", number);
    System.out.println(result);
  }
}

نتيجة الإخراج

الرقم: 8,652,145
الرقم الألماني: 8.652.145

ملاحظة:في ألمانيا، يستخدم . بدلاً من , للعدد.

طرق Java String (النص)