实现起来其实很简单,在定义字符串的时候按照这样的格式来:
<string name="hello"><g id="part1">%1$s</g>TEST<g id="part2">%2$s</g></string>
%x代表的是第几个参数,这里有两个参数,当然后面还可以加很多参数。$s代表的是参数的类型,使用的时候参数一定要与这里定义的相符,否则会出错。
使用的时候要这样使用: String s=context.getString(R.string.hello);
s=String.format(s, "a","b");
这样s的内容就会是aTESTb.
如果对string的定义是这样的:
<string name="hello"><g id="part2">%2$s</g>TEST<g id="part1">%1$s</g></string>
s的内容将会是bTESTa
Android中在string的xml文件中添加空白字符
<string name="flight_state">当前状态 :</string>
<string name="board_floor"> 登 \u0020机\u0020楼\u0020 :</string>
<string name="reality_gate">登机入口 :</string>
<string name="reality_departure">实际起飞 :</string>
效果是使字体两端对齐:
当前状态 :
登 机 楼 :
登机入口 :
实际起飞 :
下面的是java本身自带的api
String.format("%.2f",1.23546);表示保留2位有效数字。
如果需要操作多个数字,String.format("%.2f","%.2f","%.1f",2.315,63.56,1.23546);
其他一些格式:
字符 说明 示例 输出
C 货币 string.Format("{0:C3}", 2) $2.000
D 十进制 string.Format("{0:D3}", 2) 002
E 科学计数法 1.20E+001 1.20E+001
G 常规 string.Format("{0:G}", 2) 2
N 用分号隔开的数字 string.Format("{0:N}", 250000) 250,000.00
X 十六进制 string.Format("{0:X000}", 12) C
其他
string.Format("{0:000.000}", 12.2) 012.200
--------------***********************-------------------
变量.ToString()
字符型转换 转为字符串
12345.ToString("n"); //生成 12,345.00
12345.ToString("C"); //生成 ¥12,345.00
12345.ToString("e"); //生成 1.234500e+004
12345.ToString("f4"); //生成 12345.0000
变量.ToString()
字符型转换 转为字符串
12345.ToString("n"); //生成 12,345.00
12345.ToString("C"); //生成 ¥12,345.00
12345.ToString("e"); //生成 1.234500e+004
12345.ToString("f4"); //生成 12345.0000
25.ToString("F2"); // 25.00 "F?"表示保持几位小数
12345.ToString("x"); //生成 3039 (16进制)
12345.ToString("p"); //生成 1,234,500.00%