我已经宣布了如下地图,
private Map<String, String> mUnsavedFields = new HashMap<>();
如果我添加以下条目;
mUnsavedFields.put("username", "Batman");
它按预期工作,但当我去&#34;用户名&#34;键循环,
Iterator it = mUnsavedFields.entrySet().iterator();
while (it.hasNext()) {
Map.Entry pair = (Map.Entry)it.next();
Timber.d("Key(%s), Value(%S)", pair.getKey(), pair.getValue());
it.remove(); // avoids a ConcurrentModificationException
}
它将它返回为&#34; BATMAN&#34;全部大写。为什么会发生这种情况?如何保留其中的确切格式?
答案 0 :(得分:6)
%S格式占位符捕获输入参数。
captalized结果只是控制台中显示的打印件,值是原始值。
使用
"Key(%s), Value(%s)"
答案 1 :(得分:6)
由大写字母表示的转化(即'B','H','S','C','X','E','G','A'和'T')与相应的小写转换字符的相同,除了结果转换为大写
(强调我的)
您使用%S,因此它会转换为大写。