广州番禺Python, Java小班周末班培训
第四期线下Java, Python小班周末班已经开课了,培训的课程有Python爬虫,Python后端开发,Python办公自动化,Python大数据分析, Java中高级工程师培训。授课详情请点击:http://chipscoco.com/?cate=6
9.3.1 理解字符串格式化
同学们比较熟悉的是磁盘格式化,将磁盘格式化以后,磁盘中的文件全部被清除。那么,什么是字符串的格式化?对字符串进行格式化,不会清除字符串中的字符。字符串的格式化是指按照特定的格式对字符串进行输出。
举个简单的例子,在字符串"{1}{2}{3}"中, 在{1}位置处输出为整数,{2}位置处输出为字符串,{3}位置处输出为浮点数,那么格式化后的字符串输出为:"整数字符串浮点数"。
9.3.2 字符串的format方法
在Java中使用String类的静态方法format来对字符串进行格式化,以下是format方法的定义:
String.format(String format, Object... args)
参数format表示待格式化的字符串,在format中需包含格式化符号。args为可变参数,传递的实参需与format种的格式化符号一一对应。format方法的返回值是一个格式化后的字符串。String类同时提供了一个重载的format方法,如下所示:
String.format(Locale locale, String format, Object... args)
locale参数用来指定语言环境。掌握字符串的格式化,我们需要先学习常用的格式化符号。
9.3.3 常用的格式化符号
常用的格式化符号如下表所示:
格式化符号
| 描述 |
%md | 格式化为十进制整数, m表示显示的最少宽度,不传时按实际宽度进行显示。m大于实际长度时会在前面补空格。 |
%x | 格式化为十六进制整数 |
%m.nf | 格式化为浮点数,m表示显示的最少宽度,m大于实际长度时会在前面补空格。n表示小数点后的有效数位数。m与n可不传。 |
%g | 格式化为通用浮点类型 |
%b | 格式化为布尔值(true, false) |
%c | 格式化为字符类型 |
%ms | 格式化为字符串,m表示显示的最少宽度,不传时按字符串实际长度进行显示。m大于实际长度时会在前面补空格。 |
%% | 输出一个%符号 |
更多的格式化符号,读者可查阅Java的官方文档。
代码实例:
public class HelloJava{ public static void main(String[] args) { int year = 2021; double money = 11.11; String name = "Lohan"; /* (1) %m.nf中的m表示显示的最少宽度,这里的宽度包含整数位+小数点+小数点后的有效位数。 m可不传,则按实际的宽度进行显示。m大于实际总宽度时会在数值前面补空格。 (2) n用来指定小数点后的有效数位数,n不传时,默认显示6位有效数 */ String content = String.format("%s在%d年花光了口袋里仅剩的%.2f块钱", name,year, money); System.out.println(content); } }
以上程序的输出为:
Lohan在2021年花光了口袋里仅剩的11.11块钱
读者需注意,在对字符串进行格式化时,实参必须与格式化符号一一对应,且实参的类型与格式化符号所代表的类型一致,否则会报错。
9.3.4 常用的格式化标志
在对字符串进行格式化时,还可以通过一些标志位来控制输出的标志位,对齐方式,参数索引等,下表所示为常用的标志位:
格式化标志 | 描述 |
+ | 为整型数字添加一个符号位。例如%+d,对正数来说会输出一个+符号,对负数来说会输出一个-符号。 |
- | 表示左对齐,例如%-s,将输出按左对齐 |
0 | 指定的宽度大于实际宽度时,在前面补0,该标志位只能用于数值类型。例如%05d,整数的实际宽度小于5时,会在前面补0 |
# | 如果是浮点数则包含小数点,如果是16进制或8进制则添加0x或0的前缀 |
$ | 用来指定被格式化的参数索引,索引从1开始,为1时对应于第一个实参,为2时对应到第二个实参,以此类推。$的使用举例:%1$d%2$f$1$d。这里的%1$d%2$f%1$d表示用第一个实参,第二个实参,第一个实参来格式化。 |
代码实例:
public class HelloJava{ public static void main(String[] args) { String[] goods = {"炸鸡腿", "啤酒"}; double totalPrice = 29.8; // 可组合使用多个标志位来对字符串进行格式化 // 例如%3$-6.2f,对应的是第三个实参,在使用该参数进行格式化时,显示的最少宽度为6,有两位有效数,且左对齐 String content = String.format("Lohan在超市里购买了%1$s和%2$s,一共花了%3$-6.2f元\n第二天又买了%1$s", goods[0], goods[1], totalPrice); System.out.println(content); } }
以上程序的输出为:
Lohan在超市里购买了炸鸡腿和啤酒,一共花了29.80 元
第二天又买了炸鸡腿
9.3.5 对时间日期进行格式化
对字符串进行格式化时还可以利用%t+时间日期格式化符号对时间日期进行格式化,下表所示为常用的时间日期格式化符号:
时间日期格式化符号
| 描述 |
F | 将日期输出为"年-月-日"格式 |
D | 将日期输出为"日-月-年"格式 |
r | 将时间输出为12小时制的"HH:MM:SS PM"格式,HH表示小时,MM表示分钟,SS表示秒数。AM表示上午,PM表示下午。 |
T | 将日期输出为24小时制的"HH:MM:SS"格式 |
通过Java中的内置类Date,我们可以构造一个当前的日期对象,然后传递给String类的format方法进行格式化。
代码实例:
import java.util.Date; public class HelloJava{ public static void main(String[] args) { // 构造一个日期对象,使用Date之前先执行import来导入Date Date date = new Date(); // 对时间日期进行格式化时需使用%t+相应的格式化符号 String content = String.format("现在的时间是:%tF %tT", date, date); System.out.println(content); }
9.3.6 使用特定的语言环境
String类提供了一个重载的format方法,如下所示:
String.format(Locale locale, String format, Object... args)
通过locale参数,我们可以以特定的语言环境来对字符串进行格式化。local的常用选项:
local选项
| 描述 |
Local.CHINESE | 指定为中文环境 |
Local.ENGLISH | 指定为英文环境 |
Local.JAPANESE | 指定为日文环境 |
代码实例:
import java.util.Date; import java.util.Locale; public class HelloJava{ public static void main(String[] args) { // 构造一个日期对象,使用Date之前先执行import来导入Date Date date = new Date(); // 以英文环境来对字符串进行格式化 String content = String.format(Locale.ENGLISH,"现在的时间是:%tF %tr", date, date); System.out.println(content); } }
9.3.7 高薪就业班
(1) Python后端工程师高薪就业班,月薪10K-15K,免费领取课程大纲
(2) Python爬虫工程师高薪就业班,年薪十五万,免费领取课程大纲
(3) Java后端开发工程师高薪就业班,月薪10K-20K, 免费领取课程大纲
(4) Python大数据工程师就业班,月薪12K-25K,免费领取课程大纲
扫码免费领取学习资料: