"单个红包金额不低于0.01元,不高于200元"
在项目中有许多如上所示的字符串中夹杂着数字的文字,并且这些数字的类型不同(float,int),并且是通过服务端获取的数字,那么咱们如何巧妙而又优雅的变化这些数字或者文字呢?
首先介绍介个代表:
%d (表示整数)
%f (表示浮点数)
%s (表示字符串)
可以在工具类中写上可变参数的方法:
public static String getString(int id,Object... args){
return String.format(context.getResources().getString(id), args);
}
其中args为变参数,也就说在这个字符串中可以有多处按照顺序进行替换,id为封装的R.string.xxx内容;用起来是不是很方便啊
Utils.getString(R.string.rp_range_money,sendRpUIUtil.getRpConfigBean().getSingle_envelope())
"单个红包金额不低于%f元,不高于%d元"
比如我举的例子中:
Utils.getString(R.string.rp_range_money,sendRpUIUtil.getMinValue,sendRpUtil.getMaxValue());
那么动态获取到的最大值和最小值都会依次替换string中的数值。同样%s也是一样使用。
注意:将这些字符串都归类写到string.xml中,并配置好%s、%d和%f 依次获取对应的值
本文介绍了一种优雅地在字符串中动态替换数字的方法,利用 %d、%f 和 %s 符号,结合工具类的可变参数方法,实现从服务端获取的数字(整数、浮点数)及文字的灵活变化。通过实例展示了如何在 Android UI 中展示红包金额范围,同时强调了将字符串统一管理在 string.xml 中的重要性。
2万+

被折叠的 条评论
为什么被折叠?



