在编写程序时,有时需要对字符串进行格式化输出。String类的format()方法可以对字符串进行格式化。
调用format()方法的语法如下:
String.format(String format, Object... args)
format()方法是String类的静态方法,调用该方法可以直接使用String类名来调用,不需要创建String对象后再调用。
format是格式化串,是符合格式字符串语法描述的字符串。args是格式化串中格式说明符引用的参数,参数的数量是可变的,可以为零。
format格式化串和args可变参数的应用请参考第8单元的《格式化输出》一课内容。
案例1:format方法的应用。
在PbaseUnit11项目unit包下创建StringFormatSample类。代码如下:
/**
* @Title: StringFormatSample.java
* @Package unit
* @Description: Java基础知识课程案例
* @author 编程训练营
* @date
* @version V1.0
*/
package unit;
/**
* @ClassName: StringFormatSample
* @Description: 字符串(字符串的格式化)案例1
* @author 编程训练营
* @date
*
*/
public class StringFormatSample {
/**
* @Title: main
* @Description:Java程序入口main方法
* @param @param args 参数
* @return void 返回类型
* @throws
*/
public static void main(String[] args) {
/**
* 创建字符串对象
*/
String szTemp = "格式化输出演示";
/**
* 声明双精度浮点变量并赋值,
*/
double dTemp = 129.6789603;
/**
* 声明字符型变量并赋值,
*/
char chTemp = 'a';
/**
* 创建字符串对象
*/
String str = "";
// 用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类型操作符,其意义是将字符强制转换为数值输出。
程序执行结果如下图所示:
