亲宝软件园·资讯

展开

JAVA字符串占位符使用方法实例

旷野历程 人气:0

使用 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$][标识]*[最小宽度][.精度]转换符

针对不同数据类型的格式化,占位符的格式将有所裁剪。

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   ,

可用标识

可用转换符

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)

可用标识:

可用转换符:

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 

可用标识:

可用转换符:

5、对日期时间操作

占位符格式:

%[index$]t转换符

示例1

String str = String.format("%tF", new Date());
System.out.println(str);
 
// 结果
2020-12-15

可用转换符

1)日期的转换符

2)时间的转换符

常用的类型关系:

转换符详细说明示例
%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替换字符串中的占位符

在开发中,会有动态配置字符串其中的某些字符,如何使用字符中的占位符,并且在代码动态替换占位符实现动态配置字符串!

1.定义字符串时,再string文件添加字符串:

注意!记得要在字符文件中加上这些:

<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> 
<string name="text1">i am %1$d years old, i am a %2$s</string>

属性值定义如下:

%n$m[d/f/s] 表示 第n个参数,前面有m个空格(0m表示有m个0,浮点数k.m,表示小数点前保留k位,小数点后保留m位),d为整数,f为浮点数,s为字符串。

2.在代码中使用:

String text1 = Context.getResources().getString(R.string.text1);
//注意,Andorid中的Context.getString()与Context.getResources().getString()是一样的,详细可看Context源码0.0
String text2 = String.format(text1,25,"engineer");//"i am 25 years old, i am a engineer"

使用String.format()方法,第一个参数为字符串,后面依次为替换占位符的字符串。 

总结

加载全部内容

相关教程
猜你喜欢
用户评论