简介:Java中的格式化输出是程序员常用的功能,用于将数据按照指定的格式显示出来。本文将介绍Java中的四种格式化输出方法,以及常用的控制符。
在Java中,有四种常用的格式化输出方法,分别是:System.out.printf()、String.format()、Formatter类和MessageFormat类。每种方法都有其特点和使用场景。
1. System.out.printf()System.out.printf()方法是Java 5.0之后新增的,它是C语言中printf函数的Java版本。使用该方法,可以直接使用格式化字符串和格式化控制符来输出数据。
控制符说明:
%d:整数类型%f:浮点数类型%s:字符串类型%c:字符类型%n:换行符输出:Hello, Alice! You have 5 new messages.
System.out.printf("Hello, %s! You have %d new messages.%n", "Alice", 5);
String.format()String.format()方法与System.out.printf()类似,也是使用格式化字符串和格式化控制符来格式化输出。%d:整数类型%f:浮点数类型%s:字符串类型%c:字符类型%%:输出百分号输出:Hello, Alice! You have 5 new messages
String formattedString = String.format("Hello, %s! You have %d new messages", "Alice", 5);System.out.println(formattedString);
Formatter类Formatter类是Java中的一个老牌的格式化输出类,它可以与文件、字符串等目标进行格式化输出。使用Formatter类,需要先创建一个Formatter对象,然后使用其format()方法进行格式化输出。%d:整数类型%f:浮点数类型%s:字符串类型%c:字符类型%n:换行符(在字符串中需要使用”%n”)%%:输出百分号(在字符串中需要使用”%%”)输出:Hello, Alice! You have 5 new messages.
Formatter formatter = new Formatter();formatter.format("Hello, %s! You have %d new messages.%n", "Alice", 5);System.out.println(formatter); // 输出到标准输出流中
MessageFormat类MessageFormat类是用于国际化的格式化输出类,它可以处理带有占位符的字符串,并支持多种语言。使用MessageFormat类,需要先创建一个MessageFormat对象,然后使用其format()方法进行格式化输出。占位符使用花括号 {} 包裹。{0}、 {1}、 {2}等代表参数的占位。占位符的顺序号越小,优先级越高,如果占位符的数量少于参数的数量,将会根据参数的顺序进行填充。如果占位符的数量多于参数的数量,多余的占位符将被忽略。如果占位符后面没有参数,将会抛出异常。如果占位符被花括号包围,则可以指定参数的类型。例如, {0,number} 表示第一个参数应该被格式化为一个数字。如果省略类型,则参数将被转换为字符串。如果指定了错误的类型,将会抛出异常。如果占位符后面没有参数,将会抛出异常。如果占位符被花括号包围,则可以指定参数的类型。例如, {0,number} 表示第一个参数应该被格式化为一个数字。如果省略类型,则参数将被转换为字符串。如果指定了错误的类型,将会抛出异常。如果占位符后面没有参数,将会抛出异常。如果占位符被花括号包围,则可以指定参数的类型。例如, {0,number} 表示第一个参数应该被格式化为一个数字。如果省略类型,则