當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Java String format()用法及代碼示例


在本教程中,我們將借助示例了解 Java String format() 方法。

format() 方法根據傳遞的參數返回格式化字符串。

示例

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

    String str = "Java";

    // format string 
    String formatStr = String.format("Language: %s", str);

    System.out.println(formatStr);
  }
}

// Output: Language: Java

format() 語法

用法:

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

這裏,

  • format() 是一個靜態方法。我們使用類名 String 調用 format() 方法。
  • str 是要格式化的字符串
  • 上麵代碼中的 ... 表示您可以將多個對象傳遞給 format()

參數:

format() 方法采用兩個參數。

  • format- 格式字符串
  • args- 0 個或多個參數

返回:

  • 返回一個格式化的字符串

示例 1:Java 字符串 format()

class Main {
  public static void main(String[] args) {
    String language = "Java";
    int number = 30;
    String result;

    // format object as a string
    result = String.format("Language: %s", language);

    System.out.println(result);  // Language: Java

    // format number as a hexadecimal number
    result = String.format("Hexadecimal Number: %x", number);  // 1e

    System.out.println(result); // Hexadecimal Number: 1e
  }
}

在上麵的程序中,注意代碼

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

這裏,"Language: %s"是一個格式化字符串.

格式字符串中的 %s 替換為 language 的內容。 %s 是格式說明符。

類似地,%xString.format("Number: %x", number) 中被替換為 number 的十六進製值。

格式說明符

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

說明符 說明
%b , %B "true""false" 基於參數
%s , %S 一個字符串
%c , %C 一個 Unicode 字符
%d 十進製整數(僅用於整數)
%o 八進製整數(僅用於整數)
%x , %X 十六進製整數(僅用於整數)
%e , %E 科學記數法(用於浮點數)
%f 十進製數(用於浮點數)

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

class Main {
  public static void main(String[] args) {
    int n1 = 47;
    float n2 = 35.864f;
    double n3 = 44534345.76d;

    // format as an octal number
    System.out.println(String.format("n1 in octal: %o", n1));  // 57


    // format as hexadecimal numbers
    System.out.println(String.format("n1 in hexadecimal: %x", n1));  // 2f
    System.out.println(String.format("n1 in hexadecimal: %X", n1));  // 2F

    // format as strings
    System.out.println(String.format("n1 as string: %s", n1));  // 47
    System.out.println(String.format("n2 as string: %s", n2));  // 35.864

    // format in scientific notation
    System.out.println(String.format("n3 in scientific notation: %g", n3)); // 4.45343e+07
  }
}

輸出

n1 in octal: 57
n1 in hexadecimal: 2f
n1 in hexadecimal: 2F
n1 as string: 47
n2 as string: 35.864
n3 in scientific notation: 4.45343e+07

示例 3:具有多個格式說明符的字符串格式

您可以在格式字符串中使用多個格式說明符。

// 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 的值。同樣,%o 被替換為 n1 的十六進製值。

Format specifier is replaced with the object value during string formatting in Java
Java字符串的工作format()

示例 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

注意:當我們格式化-452.534使用%f,我們得到-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;

    // 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

// 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

  }
}

帶有語言環境的 Java 字符串 format()

如果您必須使用指定的 locale ,則 String format() 方法還有另一種語法。

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

示例 7:在 format() 中使用德語區域設置

// to use Locale
import java.util.Locale;

class Main {
  public static void main(String[] args) {
    int number = 8652145;
    String result;

    // using the current locale
    result = String.format("Number: %,d", number);

    System.out.println(result);

    // using the GERMAN locale as the first argument
    result = String.format(Locale.GERMAN, "Number in German: %,d", number);

    System.out.println(result);
  }
}

輸出

Number: 8,652,145
Number in German: 8.652.145

注意:在德國,整數由.代替,.

相關用法


注:本文由純淨天空篩選整理自 Java String format()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。