String格式

来源:互联网 发布:埃及夏朝 知乎 编辑:程序博客网 时间:2024/05/16 04:54
 Android中String一般都是定义在res/string.xml中,这样在程序中使用R.String.name就可以使用这个字符串了。但是想让这些定义的字符串能够灵活地根据参数来改变要怎么样才能实现呢?


    实现起来其实很简单,在定义字符串的时候按照这样的格式来:
    <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%


原创粉丝点击