为了格式化字符串,我总是使用String.format(getString(R.string.something),arg1)
但是我在文档getString(string, args)
上看到的可以做同样的事情。
因此,我想知道为什么每个人都使用String.format,如果getString可以做同样的
谢谢
答案 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)
并节省一些打字。