string-format样式使用

首先我们看如下代码

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....)中第二个第三个...参数

posted @ 2015-05-06 15:29  小白屋  阅读(364)  评论(0编辑  收藏  举报