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

原文地址:https://www.cnblogs.com/zhangshuli-1989/p/zhangshuli_string_1556153.html