首页 > 编程语言 >Java中字符串格式化的短横线标志用法

Java中字符串格式化的短横线标志用法

时间:2024-06-03 10:36:01浏览次数:17  
标签:标志 横线 格式化 String format strRes 对齐 字符串 Java

Java中字符串格式化是通过String类的format()方法来实现的,该方法有两种定义:

public static String format(String format,

                            Object... args)

public static String format(Locale l,

                            String format,

                            Object... args)

这两种用法,都有“String format”参数,该参数对应如下三种格式:

(1)、常规类型、字符类型和数值类型的格式说明符的语法

%[argument_index$][flags][width][.precision]conversion

(2)、用来表示日期和时间类型的格式说明符的语法

%[argument_index$][flags][width]conversion

(3)、与参数不对应的格式说明符的语法

%[flags][width]conversion

以上三种语法都含“flags”部分,它的意思就是标志。以下介绍这些标志的用法:

下表总结了受支持的标志。y 表示该标志受指示参数类型支持。

标志

常规

字符

整数

浮点

日期/时间

说明

'-'

y

y

y

y

y

结果将是左对齐。

'#'

y1

-

y3

y

-

结果应该使用依赖于转换类型的替换形式。

'+'

-

-

y4

y

-

结果总是包括一个符号。

'  '

-

-

y4

y

-

对于正值,结果中将包括一个前导空格。

'0'

-

-

y

y

-

结果将用零来填充。

','

-

-

y2

y5

-

结果将包括特定于语言环境的组分隔符。

'('

-

-

y4

y5

-

结果将是用圆括号括起来的负数。

 

1 取决于 Formattable 的定义。

2 只适用于 'd' 转换。

3 只适用于 'o'、'x' 和 'X' 转换。

4 对 BigInteger 应用 'd'、'o'、'x' 和 'X' 转换时,或者对 byte 及 Byte、short 及 Short、int 及 Integer、long 及 Long 分别应用 'd' 转换时适用。

5 只适用于 'e'、'E'、'f'、'g' 和 'G' 转换。

任何未显式定义为标志的字符都是非法字符,并且都被保留,以供扩展使用。

这里仅介绍短横线标志用法。

Java中字符串格式化的对齐有左对齐和右对齐两种方式。若不使用短横线“-”标志,则采用右对齐方式(缺省的对齐方式),若使用了短横线“-”标志,则采用左对齐方式。对齐方式需要使用width(宽度),且对应字符串的长度要小于宽度才有意义。

 

本例的关键代码如下:

btnNewButton01.addActionListener(new ActionListener() {

       public void actionPerformed(ActionEvent arg0) {

              //为了显示对齐的效果,这里还使用了另外一个字符串,即这里的"xyz";

              String strRes;

                           

              //1、不使用左对齐标志‘-’,右对齐;也不设置宽度。

              strRes = String.format("%s%s","abcde","xyz");

              //显示为abcdexyz,abcde向左顶格靠文本框,两个字符串间没有间隔。

              textField01.setText(strRes);

              //可见,对齐方式需要使用width(宽度),才有意义。

                           

              //2、不使用左对齐标志‘-’,右对齐;同时设置宽度,这里为15。

              strRes = String.format("%15s%s","abcde","xyz");

              //abcde距离文本框左边10个空格,两个字符串间没有间隔。

              textField02.setText(strRes);

              //可见,在15个格子范围内,文本右对齐,左边就空出10个空格。

                           

              //3、使用左对齐标志‘-’,左对齐;同时设置宽度,这里为15

              strRes = String.format("%-15s%s","abcde","xyz");

              //abcde向左顶格靠文本框,两个字符串间有10个空格的间隔。

              textField03.setText(strRes);

              //可见,在15个格子范围内,文本左对齐,右边就空出10个空格。

       }

});

标签:标志,横线,格式化,String,format,strRes,对齐,字符串,Java
From: https://www.cnblogs.com/it001xyz/p/18228282

相关文章