JAVA字符串占位符使用
分享知识 传递快乐
使用 replace 函数动态填充字符串
String str="Hello {0},我是 {1},今年{2}岁";
str = str.replace("{0}", "CSDN");
str = str.replace("{1}", "小猪");
str = str.replace("{2}", "12");
System.out.println(str);
使用 String.format() 占位符替换
作用:使用指定的格式字符串和参数返回一个格式化字符串。
String str=String.format("Hello %s,我是 %s,今年 %s 岁", "CSDN","小猪","12");
System.out.println(str);
String.format 作为文本处理工具,为我们提供强大而丰富的字符串格式化功能,为了不止步于简单调用 String.format("Hello %s", "CSDN");
String.format 使用
1、占位符
占位符格式:
%[index$][标识]*[最小宽度][.精度]转换符
针对不同数据类型的格式化,占位符的格式将有所裁剪。
- %:占位符的其实字符,若要在占位符内部使用%,则需要写成%%。
- [index$]:位置索引从1开始计算,用于指定对索引相应的实参进行格式化并替换掉该占位符。
- [标识]:用于增强格式化能力,可同时使用多个[标识],但某些标识是不能同时使用的。
- [最小宽度]:用于设置格式化后的字符串最小长度,若使用[最小宽度]而无设置[标识],那么当字符串长度小于最小宽度时,则以左边补空格的方式凑够最小宽度。
- [.精度]:对于浮点数类型格式化使用,设置保留小数点后多少位。
- 转换符:用于指定格式化的样式,和限制对应入参的数据类型。
2、对字符或字符串操作
占位符格式:
%[index$][标识][最小宽度]转换符
示例1
String str = "CSDN";
String result = String.format("%1$7s", str);
System.out.println("Hello" + result);
// 简化
result = String.format("%7s", str);
System.out.println("Hello" + result);// 结果:
Hello CSDN
Hello CSDN
示例2
String str = "CSDN";
String result = String.format("%1$-7s", str);
System.out.println("Hello" + result + ",");
// 简化
result = String.format("%-7s", str);
System.out.println("Hello" + result + ",");// 结果:
HelloCSDN ,
HelloCSDN ,
可用标识
- -,在最小宽度内左对齐,右边用空格补上。
可用转换符
- s,字符串类型。
- c,字符类型,实参必须为char或int、short等可转换为char类型的数据类型,否则抛IllegalFormatConversionException异常。
- b,布尔类型,只要实参为非false的布尔类型,均格式化为字符串true,否则为字符串false。
- n,平台独立的换行符(与通过 System.getProperty("line.separator") 是一样的)
3、对整数操作
占位符格式
%[index$][标识]*[最小宽度]转换符
示例1
将1显示为0001
int num = 1;
String str = String.format("%04d", num);
System.out.println(str);// 结果:
0001
示例2
将-1000显示为(1,000)
int num = -1000;
String str = String.format("%(,d", num);
System.out.println(str);// 结果:
(1,000)
可用标识:
- -,在最小宽度内左对齐,不可以与0标识一起使用。
- 0,若内容长度不足最小宽度,则在左边用0来填充。
- #,对8进制和16进制,8进制前添加一个0,16进制前添加0x。
- +,结果总包含一个+或-号。
- 空格,正数前加空格,负数前加-号。
- ,,只用与十进制,每3位数字间用,分隔。
- (,若结果为负数,则用括号括住,且不显示符号。
可用转换符:
- b,布尔类型,只要实参为非false的布尔类型,均格式化为字符串true,否则为字符串false。
- d,整数类型(十进制)。
- x,整数类型(十六进制)。
- o,整数类型(八进制)
- n,平台独立的换行符, 也可通过System.getProperty("line.separator")获取
4、对浮点数操作
占位符格式:
%[index$][标识]*[最小宽度][.精度]转换符
示例:
double num = 123.4567899;
System.out.print(String.format("%f %n", num));
System.out.print(String.format("%a %n", num));
System.out.print(String.format("%g %n", num));// 结果
123.456790
0x1.edd3c0bb46929p6
123.457
可用标识:
- -,在最小宽度内左对齐,不可以与0标识一起使用。
- 0,若内容长度不足最小宽度,则在左边用0来填充。
- #,对8进制和16进制,8进制前添加一个0,16进制前添加0x。
- +,结果总包含一个+或-号。
- 空格,正数前加空格,负数前加-号。
- ,,只用与十进制,每3位数字间用,分隔。
- (,若结果为负数,则用括号括住,且不显示符号。
可用转换符:
- b,布尔类型,只要实参为非false的布尔类型,均格式化为字符串true,否则为字符串false。
- n,平台独立的换行符, 也可通过System.getProperty("line.separator")获取。
- f,浮点数型(十进制)。显示9位有效数字,且会进行四舍五入。如99.99。
- a,浮点数型(十六进制)。
- e,指数类型。如9.38e+5。
- g,浮点数型(比%f,%a长度短些,显示6位有效数字,且会进行四舍五入)
5、对日期时间操作
占位符格式:
%[index$]t转换符
示例1
String str = String.format("%tF", new Date());
System.out.println(str);// 结果
2020-12-15
可用转换符
1)日期的转换符
- c,星期六 十月 27 14:21:20 CST 2007
- F,2007-10-27
- D,10/27/07
- r,02:25:51 下午
- T,14:28:16
- R,14:28
- b, 月份简称
- B, 月份全称
- a, 星期简称
- A, 星期全称
- C, 年前两位(不足两位补零)
- y, 年后两位(不足两位补零)
- j, 当年的第几天
- m, 月份(不足两位补零)
- d, 日期(不足两位补零)
- e, 日期(不足两位不补零)
2)时间的转换符
- H, 24小时制的小时(不足两位补零)
- k, 24小时制的小时(不足两位不补零)
- I, 12小时制的小时(不足两位补零)
- i, 12小时制的小时(不足两位不补零)
- M, 分钟(不足两位补零)
- S, 秒(不足两位补零)
- L, 毫秒(不足三位补零)
- N, 毫秒(不足9位补零)
- p, 小写字母的上午或下午标记,如中文为“下午”,英文为pm
- z, 相对于GMT的时区偏移量,如+0800
- Z, 时区缩写,如CST
- s, 自1970-1-1 00:00:00起经过的秒数
- Q, 自1970-1-1 00:00:00起经过的豪秒
常用的类型关系:
转换符 | 详细说明 | 示例 |
---|---|---|
%s | 字符串类型 | “喜欢请收藏” |
%c | 字符类型 | ‘m’ |
%b | 布尔类型 | true |
%d | 整数类型(十进制) | 88 |
%x | 整数类型(十六进制) | FF |
%o | 整数类型(八进制) | 77 |
%f | 浮点类型 | 8.888 |
%a | 十六进制浮点类型 | FF.35AE |
%e | 指数类型 | 9.38e+5 |
%g | 通用浮点类型(f和e类型中较短的) | 不举例(基本用不到) |
%h | 散列码 | 不举例(基本用不到) |
%% | 百分比类型 | %(%特殊字符%%才能显示%) |
%n | 换行符 | 不举例(基本用不到) |
%tx | 日期与时间类型(x代表不同的日期与时间转换符) | 不举例(基本用不到) |
———————————
如有不足请留言指正
相互学习,共同进步
JAVA字符串占位符使用相关推荐
- JAVA字符串占位符替换
JAVA字符串占位符替换 如果有字符串 "我是{0},我来自{1},今年{2}岁. 请问怎样用String的内置方法用替换掉字符串的占位符:比如"我是中国人,我来自北京,今年22岁 ...
- java字符串占位符%s
字符串占位符%s 一.String.format 二.MessageFormat.format 一.String.format 语法 : String.format(String format, Ob ...
- java word 占位符替换,javaword占位符替换
一.java中有什么方法可以读取占位符的字符串,并且把占位符替换成参数 可以通过字符串的format方法进行实现. 举例:string domain = "www.ykmaiz.com&qu ...
- scala 字符串占位符_如何在Scala中将带有换行符的字符串转换为字符串列表?
scala 字符串占位符 A string is a sequence of characters and it can contain multiple lines, for this, the s ...
- 【python】python字符串占位符
python有三种字符串占位符方式,代码演示如下: if __name__ == "__main__":name = "Lucy"age = 20# 方式一:占 ...
- JavaScript实现类似Python的字符串占位符.format()
文章目录 问题描述 解决方案 代码 效果 参考文献 问题描述 使用jQuery向页面添加元素时需要拼接HTML,当HTML中含有"之类的信息时,手动拼接极度容易出错,若有类似Python的. ...
- java将占位符替换成指定字符串的函数
提供一个可以将占位符替换成指定字符串的函数 /*** 将message中的占位符按照从左到右的顺序替换成制定的字符串.* 如:info("你好,我是{},我{}岁了", " ...
- java string 占位符_驳《阿里「Java开发手册」中的1个bug》?
前两天写了一篇关于<阿里Java开发手册中的 1 个bug>的文章,评论区有点炸锅了,基本分为两派,支持老王的和质疑老王的. 首先来说,无论是那一方,我都真诚的感谢你们.特别是「二师兄」, ...
- java mysql 占位符_在Java中编写带占位符的SQL语句
C#中SQL中带占位符的语句 假设有一张学员信息表Student,通过表中的ID来找学员,查询的SQL语句如下 string sql = string.Format("select * fr ...
最新文章
- Java 正则表达式使用详解
- Springboot mybatis逆向工程org.springframework.beans.factory.BeanCreationException: Error creating bean错误
- Eclipse配置注释模板的方法
- WriteFile写磁盘扇区是87错误的原因
- Qos、Tos、Cos、DSCP
- libco协程库源码解读
- Java并发篇_volatile
- Python SQLite教程
- vue 动态添加组件
- 记一次西安thoughtworks的面试经历
- dataframe类型数据的遍历_pandas中遍历dataframe的每一个元素
- 惠州 菜鸟机器人_马云在惠州建了一个“秘密基地”,超震撼!
- Pro ASP.NET Core MVC(四)【C#关键特征】
- Java TCP实现高仿版QQ聊天(一)
- 截图或者模糊图片高清处理方式
- 给未来的自己一封信计算机,给未来的自己一封信范文(通用10篇)
- 大四 Java开发实习近一年 记录(每6至12月更新一次)
- 学习笔记|PSO粒子群算法(1)
- 威名赫赫的“国防七子”,究竟有多牛!
- go map同时储存多种类型的value