首先我们看如下代码
protected String calcu1() { StringBuffer resultB = new StringBuffer(); String str = null; str = String.format("Hi,%s", "王力"); resultB.append(str + "|"); str = String.format("Hi,%s:%s.%s", "王南", "王力", "王张"); resultB.append(str + "|"); str = String.format(Locale.US, "%" + 3 + "." + 4 + "g", 136985021.96584239551); resultB.append(str + "|"); SimpleDateFormat format = null; if (isZh(this)) { format = new SimpleDateFormat("yyyy年MM月dd日"); } else { format = new SimpleDateFormat("yyy-MM-dd"); } str = format.format(new Date(1000000000*2000L)); resultB.append(str + "|"); str = getResources().getString(R.string.test); str = String.format(str, "yy"); resultB.append(str + "|"); str = getResources().getString(R.string.test1); str = String.format(str, "河南","夏邑",33); resultB.append(str + "|"); str = resultB.toString(); return str; }
资源文件如下
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="test">我的名字是: "%1$s"</string> <string name="test1">我来自: "%1$s"省,"%2$s"县,今年"%3$d"岁</string> </resources>
运行的结果如下
上面其实主要涉及到了以下两个知识点
1)如何在xml中使用格式化字符串
这个方法其实也比较简单,主要就是在xml中定义字符串的时候,添加想要更改的占位符就行了,常用的占位符类跟C语言中的规则一样,
s:字符串
c:字符
d:整数
f:浮点数
形式为%1$s
%占位符
1$第一个
s字符串
使用的时候,它对应于方法String.format(string,s1,s2,s3....)中第二个第三个...参数