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' 转换。
任何未显式定义为标志的字符都是非法字符,并且都被保留,以供扩展使用。
这里仅介绍井号标志用法。
本例的关键代码如下:
btnNewButton01.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
String strRes;
//八进制的转换为字母‘o’,而不是数字‘0’;
//八进制的前缀是数字‘0’,而不是字母‘o’;
//1、八进制不使用井号标志‘#’,结果前不加‘0’。
strRes = String.format("%o",9);
textField01.setText(strRes); //结果为11
//2、八进制使用井号标志‘#’,结果前加‘0’。
strRes = String.format("%#o",9);
textField02.setText(strRes); //结果为011
//3、十六进制不使用井号标志‘#’,结果前不加‘0x’或者‘0X’。
strRes = String.format("%x",18);
textField03.setText(strRes); //结果为12
//4、十六进制使用井号标志‘#’,结果前加‘0x’或者‘0X’。
strRes = String.format("%#X",18);
textField04.setText(strRes); //结果为0X12
}
});
标签:标志,格式化,String,format,井号,结果,strRes,字符串,Java From: https://www.cnblogs.com/it001xyz/p/18228285