java中如何以左对齐、右对齐和居中对齐字符串打印输出?
下文笔者将讲述使用java代码打印出“左对齐、右对齐和居中对齐字符串”的方法分享,如下所示:
例:
实现思路: 1.借助printf(String format, Object... args)输出指定占位符的信息 2.借助 StringUtils 工具类处理(需引入相应的jar包)
标志 | 说明 |
- | 左对齐输出,未指定时默认为右对齐 |
+ | 打印数字值的(+)或(-)符号 |
0 | 零填充了一个数值 |
, | 大于1000的数字的逗号分组分隔符 空格将输出一个(-)符号表示负值,如果为正值则输出一个空格 |
转换符 | 备注说明 |
s | 字符串转换符 |
c | 字符转换符 |
d | 数值转换符 |
f | 浮点型转换符 |
n | 换行符 |
package com.java265; import org.apache.commons.lang3.StringUtils; import java.time.LocalDate; import java.time.Month; import java.time.temporal.ChronoUnit; public class StringAlignment { private static final Object[][] people = { {"adeal", LocalDate.of(2021, Month.JANUARY, 1)}, {"java", LocalDate.of(2020, Month.DECEMBER, 8)}, {"ado.net", LocalDate.of(1998, Month.JULY, 9)}, {"cSharp", LocalDate.of(2003, Month.MARCH, 23)}, }; public static void main(String[] args) { String nameFormat = "| %1$-20s | "; String dateFormat = " %2$tb %2$td, %2$tY | "; String ageFormat = " %3$3s |%n"; String format = nameFormat.concat(dateFormat).concat(ageFormat); String line = new String(new char[48]).replace('\0', '-'); System.out.println(line); System.out.printf("|%s|%s|%s|%n", StringUtils.center("Name", 22), StringUtils.center("Birth Date", 16), StringUtils.center("Age", 6)); System.out.println(line); for (Object[] data : people) { System.out.printf(format, data[0], data[1], ChronoUnit.YEARS.between((LocalDate) data[1], LocalDate.now())); } System.out.println(line); } }
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。