在 Java 中,打印字符串是一项常见的任务。Java 提供了多种方法来实现这一目的,其中最常用的是 System.out.println() 方法。
System.out.println() 方法可以接受任何类型的参数,包括字符串、整数、浮点数、布尔值和对象。它将参数转换为字符串形式并将其打印到控制台上。
public class PrintString { public static void main(String[] args) { String str = "Hello World!"; // Print the string System.out.println(str); } }
上面的代码使用 System.out.println() 方法打印了一个字符串“Hello World!”。
此外,还有几种不同的方法可以用来打印字符串:System.out.print() 和 System.err.print()。System.out.print() 和 System.out.println() 的区别在于前者不会在末尾添加换行符;而 System.err.print() 则会将输出写入标准错误流中(stderr)而不是标准输出流中(stdout)。
public class PrintString { public static void main(String[] args) { String str = "Hello World!"; // Print the string without new line System.out.print(str); } }
上面的代码使用 System.out.print() 方法打印了一个字符串“Hello World!”而不会在末尾添加换行符。
此外,还可以使用 printf() 方法来格式化输出字符串。printf() 方法允许我们使用格式化字符串来定义要打印的内容和样式。例如:
public class PrintString { public static void main(String[] args) { String str = "Hello World!"; // Print the string with formatting System.out.printf("%s\n", str); } }
上面的代码使用 printf() 方法将字符串“Hello World!”打印到控制台上并添加了一个换行符。
使用Formatter格式化数据需要两种类型的输入:
格式字符串定义如何格式化值列表。
格式字符串可以包含静态文本和嵌入格式说明符。静态文本在格式字符串中作为结果输出。
格式说明符用于两个目的。
假设您要打印包含某人的出生日期的文本。以下是此类文本的示例:
January 16, 1970 is Mike"s birth day. Let"s go and celebrate. January 11, 1971 is John"s birth day. Let"s go and celebrate. January 16, 1972 is Jane"s birth day. Let"s go and celebrate. January 16, 1973 is Kite"s birth day. Let"s go and celebrate.
上述文本包含固定文本和格式化文本。 为了重用格式和填写人名称和生日我们可以写一个模板如下:
<month> <day>, <year> is <name>"s birth day. Let"s go and celebrate.
生日日期用尖括号括起来,以及人的姓名。我们可以称它为占位符。 后来我们可以为占位符提供真正的价值。
要在Formatter类中使用模板,我们将占位符转换为格式说明符。模板变为格式字符串。
格式说明符以百分号%
开头。
我们可以重写可以与Formatter类一起使用的模板字符串,如下所示。
%1$tB %1$td, %1$tY is %2$s"s birth day. Let"s go and celebrate.
在此格式字符串中,%1 $ tB
,%1 $ td
%1 $ tY
和%2 $ s
是格式说明符。
格式字符串中的其余文本,例如“生日,让我们去庆祝",是固定文本。
以下代码显示如何使用上述格式字符串打印格式化文本。
在代码中,我们创建了一个LocalDate来存储Mike的生日。
本地日期值和“Mike"成为格式字符串的输入值。
import java.time.LocalDate; import java.time.Month; public class Main { public static void main(String[] args) { LocalDate dob = LocalDate.of(1971, Month.MAY, 16); System.out.printf( "%1$tB %1$td, %1$tY is %2$s"s birth day. Let"s go and celebrate.", dob, "Mike"); } }
上面的代码生成以下结果。
格式说明符的一般语法如下:
%<argument-index$><flags><width><.precision><conversion>
%
和转换
部分是必需的,所有其他部分都是可选的。
格式说明符和%
标记之间没有空格格式字符串中的格式说明符的开始。
要转义%
,请使用 %%
。
argument-index $
指定参数的索引。它有一个整数,后跟一个 $
。
第一个参数称为1 $,第二个参数为2 $,依此类推。我们可以多次参考同一个参数。
flags
包含一组字符并指定输出的格式。 flags
的有效值取决于参数的数据类型。
width
指定最小数目输出所需的字符。
.precision
的确切含义取决于转换
指定要输出的最大字符数。
对于十进制数, .precision
以点开头。
。
转换
(强制部分)指定如何格式化值。
有两个特殊的格式说明符:
以下代码显示如何使用这两个特殊格式说明符:
public class Main { public static void main(String[] args) { System.out.printf("The rate is 10%%.%nA%nB"); } }
上面的代码生成以下结果。
The rate is 10%. A B
上面的代码生成以下结果。
Java正则表达式教程 -Java正则表达式模式包 java.util.regex 包含三个类,以支持正则表达式的完整版本。模式匹配PatternSyntaxEx...
Java格式 -Java日期格式模式SimpleDateFormat日期和时间格式由日期和时间模式字符串指定。在格式字符串中,从“A到“Z和从“a到...
Java线程教程 -Java当前线程一个语句可以由不同的线程在不同的时间执行。Thread类静态方法currentThread()返回调用此方法的Threa...
Java线程教程 -Java线程组线程总是线程组的成员。默认情况下,线程的线程组是其创建者线程的组。Java程序中的线程组由java.lang....
Java线程教程 -Java执行器框架提供了一种将任务提交与任务执行分离的方法。java.util.concurrent包中的Executor接口是执行器框架...