菜单
×
   ❮     
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

Java 教程

Java HOME Java Intro Java Get Started Java Syntax Java Output Java Comments Java Variables Java Data Types Java Type Casting Java Operators Java Strings Java Math Java Booleans Java If...Else Java Switch Java While Loop Java For Loop Java Break/Continue Java Arrays

Java Methods

Java Methods Java Method Parameters Java Method Overloading Java Scope Java Recursion

Java Classes

Java OOP Java Classes/Objects Java Class Attributes Java Class Methods Java Constructors Java Modifiers Java Encapsulation Java Packages / API Java Inheritance Java Polymorphism Java Inner Classes Java Abstraction Java Interface Java Enums Java User Input Java Date Java ArrayList Java LinkedList Java List Sorting Java HashMap Java HashSet Java Iterator Java Wrapper Classes Java Exceptions Java RegEx Java Threads Java Lambda Java Advanced Sorting

Java File Handling

Java Files Java Create/Write Files Java Read Files Java Delete Files

Java How To's

Add Two Numbers Count Words Reverse a String Sum of Array Elements Convert String to Array Sort an Array Find Array Average Find Smallest Element ArrayList Loop HashMap Loop Loop Through an Enum Area of Rectangle Even or Odd Number Positive or Negative Square Root Random Number

Java 参考

Java Reference Java Keywords Java String Methods Java Math Methods Java Output Methods Java Arrays Methods Java ArrayList Methods Java LinkedList Methods Java HashMap Methods Java Scanner Methods Java Iterator Methods Java Errors & Exceptions

Java 示例

Java Examples Java Compiler Java Exercises Java Quiz Java Server Java Certificate


Java String format() Method

❮ String Methods


示例

返回格式化字符串

String myStr = "Hello %s! One kilobyte is %,d bytes.";
String result = String.format(myStr, "World", 1024);
System.out.println(result);

自己动手试一试 »

注意: 你可以在页面底部找到更多“动手试试”的示例。


定义和用法

format() 方法使用指定的区域设置、格式和附加参数返回一个格式化的字符串。

如果未将区域设置传递给此方法,则使用 Locale.getDefault() 提供的区域设置。

来自附加参数的数据将被格式化并写入格式字符串中的占位符,这些占位符以 % 符号标记。参数的格式方式取决于 % 符号后面的字符序列。

占位符

占位符的形式为 %[arg$][flags][width][.precision]conversion。方括号中的部分是可选的。

每个组件的解释

  • arg$ - 可选。后跟 $ 符号的数字,表示要使用哪个附加参数,参数编号从 1 开始。这可以替换为 <,表示使用前一个占位符的参数。
  • flags - 可选。以下任意字符的序列
    • - - 使输出左对齐,通过在右侧添加填充空格而不是左侧。
    • # - 根据转换显示格式化数据的备用表示形式。
    • + - 使正数始终以 "+" 作为前缀。
    • - (一个空格字符) 在正数前加上空格,主要目的是使数字能够与负数对齐。
    • 0 - 用零填充数字的左侧。
    • , - 对数字进行分组(例如按千位)并在组之间放置分隔符。这受区域设置的影响。
    • ( - 用括号括住负数。
  • width - 可选。一个整数,指定输出应占用的最小字符数。如有必要,会在右侧添加空格以达到此数字,如果使用了 - 标志,则会在左侧添加空格。
  • .precision 可选。一个 . 后跟一个整数,表示在格式化数据中应显示的小数位数。
  • conversion - 必需。一个字符,指示如何表示参数的数据。如果字符是大写,则数据将尽可能以大写形式格式化。表中列出了可能的字符。

转换列表

字符 转换 描述
% 百分比 在输出中显示文字 "%" 字符。
n 换行 在输出中显示换行符。
bB 布尔值 显示布尔值的字符串表示形式 "true" 或 "false"。如果使用 "B",则显示 "TRUE" 或 "FALSE"。
hH 无符号十六进制整数 将参数的二进制数据表示为无符号十六进制整数。如果使用 "H",则数字 A 到 F 以大写形式显示。

注意: 对于正整数以外的任何数据,这并不表示其真实值。

sS 字符串 显示参数的默认字符串表示形式。如果使用 "S",则字符串将尽可能转换为大写。
cC Unicode 字符 显示参数的 Unicode 字符表示形式。对于整数,这是与数字对应的 Unicode 字符。如果使用 "C",则字符将尽可能转换为大写。
d 十进制整数 将整数表示为十进制整数。
o 八进制整数 将整数表示为八进制整数。 "#" 标志将用 "0" 作为前缀。
xX 十六进制整数 将整数表示为十六进制整数。 "#" 标志将用 "0x" 作为前缀。如果使用 "X",则数字 A 到 F 以及字母 X 将以大写形式显示。
eE 科学计数法 将浮点数表示为科学计数法。如果使用 "E",则表示中的字母 "E" 将为大写。 "#" 标志即使在没有小数位数的情况下也会强制使用小数点。
f 浮点数 表示一个浮点数。 "#" 标志即使在没有小数位数的情况下也会强制使用小数点。
gG 通用数字 显示浮点数的 feE 之间的最短表示形式。
aA 十六进制浮点数 显示浮点数的内部表示,带有十六进制数字。
tT 时间或日期 显示格式化的日期或时间。 t 或 T 必须后跟一个额外的字符,指示日期或时间应如何格式化。如果使用 "T",则日期或时间中的文本部分(例如 "JANUARY")将为大写。

以下字符可用于日期和时间格式化

  • H - 小时(24 小时制)的表示(00 到 23)
  • I - 小时(12小时制,01 到 12)
  • k - 小时(24小时制,0 到 23)
  • l (小写 'L') - 小时(12小时制,1 到 12)
  • M - 分钟(带前导零,00 到 59)
  • S - 秒(带前导零,00 到 59)(对于闰秒,值可能为 60)
  • L - 毫秒(带前导零,000 到 999)
  • N - 纳秒(带前导零,000000000 到 999999999)
  • p - "am", "pm", "AM" 或 "PM",表示上午或下午
  • z - 与格林威治时间的时差(例如:-0800)
  • Z - 时区缩写(例如:EST, MDT)
  • s - 自 Unix 纪元(1970年1月1日 00:00:00 GMT)以来的秒数
  • Q - 自 Unix 纪元(1970年1月1日 00:00:00 GMT)以来的毫秒数
  • B - 月份的完整文本表示(一月到十二月)
  • b 或 h - 月份的简短文本表示(三个字母)
  • A - 一周中某天的完整文本表示(例如:Monday)
  • a - 一周中某天的简短文本表示(例如:Mon)
  • C - 年份的前两位数字(例如:1970 年显示 "19")
  • Y - 四位数的年份表示
  • y - 两位数的年份表示
  • j - 一年中的第几天(带前导零,001 到 366)
  • m - 月份的数字表示(01 到 12)
  • d - 月份的第几天(01 到 31)
  • e - 月份的第几天(不带前导零,1 到 31)
  • R - 24 小时制的时间(例如:21:30)
  • T - 24 小时制的时间(带秒,例如:21:30:02)
  • r - 12 小时制的时间(带秒,例如:09:30:02 PM)("AM" 和 "PM" 始终为大写)
  • D - 月/日/年的日期表示(例如:12/17/23)
  • F - 年-月-日的日期表示(例如:2023-12-17)
  • c - 完整的日期和时间(例如:Thu Mar 28 10:51:00 EDT 2024)

语法

以下之一

public static String format(Locale locale, String format, Object... args)
public static String format(String format, Object... args)

参数值

参数 描述
locale 可选。用于确定某些格式的区域设置,例如用于小数点和分组分隔符的字符。
format 必需。要返回的字符串,其中可以包含占位符,用于指示如何格式化附加参数。
args 可选。任意数量的附加参数,它们的值可以被格式化并显示在返回的字符串中。

技术详情

返回 使用指定区域设置、格式和参数格式化的 String 值。
抛出 IllegalFormatException - 如果格式字符串包含无效的占位符,或者占位符与参数的数据类型不兼容。
Java 版本 1.5

更多示例

示例

使用所有组件的占位符

String result = String.format("%2$,3.2f %1$s", "meters", 1260.5052);
System.out.println(result);

这是占位符 %2$,3.2f 的每个部分的含义

  • 2$ 表示使用第二个参数的值
  • , 表示数字应分组(通常按千位)
  • 3 表示数据的表示形式应至少为 3 个字符长
  • .2 表示小数点后应有两个数字
  • f 表示数据表示为浮点数

自己动手试一试 »

示例

使用不同顺序的参数

String result = String.format("%3$c %2$c %1$c", 'a', 'b', 'c');
System.out.println(result);

自己动手试一试 »

示例

格式化浮点数

double myNumber = 123456.78;
String result;

// Default
result = String.format("%f", myNumber);
System.out.println(result);

// Two decimal digits
result = String.format("%.2f", myNumber);
System.out.println(result);

// No decimal digits
result = String.format("%.0f", myNumber);
System.out.println(result);

// No decimal digits but keep the decimal point
result = String.format("%#.0f", myNumber);
System.out.println(result);

// Group digits
result = String.format("%,.2f", myNumber);
System.out.println(result);

// Scientific notation with two digits of precision
result = String.format("%.2e", myNumber);
System.out.println(result);

自己动手试一试 »

示例

格式化 Unix 时间戳的日期

long date = 1711638903488L; // Unix timestamp (number of milliseconds since January 1, 1970)
String result

// Time
result = String.format("%tl:%<tM %<tp", date);
System.out.println(result);

// Month and day
result = String.format("%tB %<te", date);
System.out.println(result);

// Full date representation
result = String.format("%tc", date);
System.out.println(result);

自己动手试一试 »

示例

从 Unicode 代码点表示字符

String result;

// Represent characters from their unicode code points
result = String.format("%c%c%c%c%c", 72, 101, 108, 108, 111);
System.out.println(result);

// Force unicode characters to uppercase
result = String.format("%C%C%C%C%C", 72, 101, 108, 108, 111);
System.out.println(result);

自己动手试一试 »


❮ String Methods
×

联系销售

如果您想将 W3Schools 服务用于教育机构、团队或企业,请发送电子邮件给我们
sales@w3schools.com

报告错误

如果您想报告错误,或想提出建议,请发送电子邮件给我们
help@w3schools.com

W3Schools 经过优化,旨在方便学习和培训。示例可能经过简化,以提高阅读和学习体验。教程、参考资料和示例会不断审查,以避免错误,但我们无法保证所有内容的完全正确性。使用 W3Schools 即表示您已阅读并接受我们的使用条款Cookie 和隐私政策

版权所有 1999-2024 Refsnes Data。保留所有权利。W3Schools 由 W3.CSS 提供支持