String.format或getString

时间:2016-11-11 11:18:57

标签: android android-resources

为了格式化字符串,我总是使用String.format(getString(R.string.something),arg1)

但是我在文档getString(string, args)上看到的可以做同样的事情。

因此,我想知道为什么每个人都使用String.format,如果getString可以做同样的

谢谢

1 个答案:

答案 0 :(得分:2)

你错了,没有方法Resources.getString(string, args...)Context.getString(string, args...)Resources.getString(int, args...)有一个int和object。

格式化字符串时,您将使用String.format(string, args...)。但是在Android中,您的字符串资源可能位于res文件夹中,因此您可以方便地从资源中获取字符串并使用String.format对其进行格式化。它与你做的一样(taken from Android source):

@NonNull
public String getString(@StringRes int id, Object... formatArgs) throws NotFoundException {
    final String raw = getString(id);
    return String.format(mResourcesImpl.getConfiguration().getLocales().get(0), raw,
            formatArgs);
}

您可以使用它:

getString(R.string.something, arg1)

并节省一些打字。