在编写程序时,有时需要对字符串进行格式化输出。String类的format()方法可以对字符串进行格式化。
调用format()方法的语法如下:
String.format(Stringformat,Object...args)
format()方法是String类的静态方法,调用该方法可以直接使用String类名来调用,不需要创建String对象后再调用。
format是格式化串,是符合格式字符串语法描述的字符串。args是格式化串中格式说明符引用的参数,参数的数量是可变的,可以为零。
format格式化串和args可变参数的应用请参考第8单元的《格式化输出》一课内容。
案例1:format方法的应用。
在PbaseUnit11项目unit包下创建StringFormatSample类。代码如下:
/**
*
Title:StringFormatSample.java*
Packageunit*
Description:Java基础知识课程案例*
author编程训练营*
date*
versionV1.0*/
packageunit;
/**
*
ClassName:StringFormatSample*
Description:字符串(字符串的格式化)案例1*
author编程训练营*
date*
*/
publicclassStringFormatSample{
/**
*
Title:main*
Description:Java程序入口main方法*
paramparamargs参数*
returnvoid返回类型*
throws*/
publicstaticvoidmain(String[]args){
/**
*创建字符串对象
*/
StringszTemp=格式化输出演示;
/**
*声明双精度浮点变量并赋值,
*/
doubledTemp=.;
/**
*声明字符型变量并赋值,
*/
charchTemp=a;
/**
*创建字符串对象
*/
Stringstr=;
//用format方法格式化szTemp,字符串前后分别填充2个*字符
str=String.format(**%s**\n,szTemp);
System.out.println(str);
//用format方法格式化dTemp,位数宽度为9,保留2为有效小数,空位用0填充
str=String.format(%s:%09.2f\n,输出浮点型变量,dTemp);
System.out.println(str);
//用format方法格式化chTemp,分别输出字符、十进制、十六进制
str=String.format(%s:%c:\n十进制:%d:\n十六进制:%x\n,输出字符型变量,chTemp,(int)chTemp,(int)chTemp);
System.out.println(str);
}
}
程序结构分析
在“String.format(**%s**\n,szTemp);”语句中,“”**%s**\n”是格式字符串,%s表示输出字符串,字符串的内容来自szTemp,%s前面和后面的**是要输出的字符串内容,格式字符串里面可以添加任何想要输出的内容。\n是换行符,下次输出时将会另起一行。
在“String.format(%s:%09.2f\n,输出浮点型变量,dTemp);”语句中,第一个%s的内容来自于格式字符串后面的第一个字符串参数“输出浮点型变量”,%09.2f表示输出9位数浮点数,保留2位有效小数,位数不足的,前面用0填充,浮点数值内容来自于dTemp。
该语句也可以改写为下面的语句,效果是等同的:
System.out.printf(输出浮点型变量:%09.2f\n,dTemp);
在格式化字符型变量语句中,分别应用%c、%d和%x将字符型变量按照字符、十进制数值和十六进制数值格式化,其中“(int)”是将字符类型强制转换为int类型操作符,其意义是将字符强制转换为数值输出。
程序执行结果如下图所示: