我目前在从哈希映射中的值中提取单个字符串时遇到一些麻烦。
当前,我有一个哈希映射,其设置如下:
Map<Character, Character> keyMapping = new HashMap<Character, Character>();
for(int i = 0; i < rotor1.length(); i++) {
keyMapping.put(thirdKeyMapping.get(rotor1.charAt(i)), rotor2.charAt(i));
}
当您打印
keyMapping
时,它将呈现一个数组,如下所示:println(keyMapping.values().toString());
//[F, S, Y, Q, N, I, D, X, B, E, H, Z, C, T, J, O, W, M, V, A, L, K, U, P, R, G]
如何更改此打印行,以使该值是仅包含字母的单个字符串?例如:
//FSYQNIDXBEHZCTJOWMVALKUPRG
希望这一点很清楚,但是请告诉我是否有更多信息可以帮助您回答这个问题。
最佳答案
如果您使用的是Java 8,则可以使用reduction完成您要执行的操作,其中String
标识为空字符串""
。
请注意,由于您有Character
的集合,因此必须有一个中间步骤才能将它们首先转换为String
。
String reduced = keyMapping.values()
.stream()
.map(Object::toString)
.reduce("", String::concat);
然后,您可以打印出
reduced
,它将是您期望的字符串。