strings.xml中的特殊字符:空格,换行
Android推荐将字符串统一写到values/string.xml中进行保存。目的是方便统一管理,并且利于国际化。
但是在这些字符串中直接输入一些符号是不起任何效果的,比如空格,换行,<,>等特殊符号,这就需要使用转义字符来进行转移,这样才能在使用时正确显示字符。在strings.xml字符文件起始加上:
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">1、特殊字符
空格  
换行 \n
缩进 \t
系统定义的基本的缩进的格数不同,有的代表4个半角字符,有的代表8个半角字符,所以可能显示时效果不同,建议如果编写界面时尽量少用。
" \" 或 \" 或 \"
' \' 或 \' 或 \'
& & 或 &
lt(<) < 或 <
gt(>) > 或 >
@ \@
2、格式化字符
%1$s,%1$d格式化string的用法:
%n$ms:代表输出的是字符串,n代表是第几个参数,设置m的值可以在输出之前放置空格
%n$md:代表输出的是整数,n代表是第几个参数,设置m的值可以在输出之前放置空格,也可以设为0m,在输出之前放置m个0
%n$mf:代表输出的是浮点数,n代表是第几个参数,设置m的值可以控制小数位数,如m=2.2时,输出格式为00.00
也可简单写成(MK编译可能会出错):
%d (表示整数)
%f (表示浮点数)
%s (表示字符串)
3、<xliff:g>标签
XLIFF英文全名是XML Localization Interchange File Format,中文名是XML本地化数据交换格式。
举个例子:
在strings.xml中定义一个字符串
<string name="string">name : <xliff:g id="name">%1$s</xliff:g>,age : <xliff:g id="age">%2$d</xliff:g></string><xliff:g id="name">%1$s</xliff:g>
其中id任意指定,可有可无。中间就是前面介绍的格式化字符串,后面获取字符串的时候替换成指定的。
从strings.xml中获取string的时候,格式化替换字符
String s = getString(R.string.string, "Quibbler", 25);参考资料:

