首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将hashmap值转换为单个字符串

如何将hashmap值转换为单个字符串
EN

Stack Overflow用户
提问于 2016-02-15 01:52:29
回答 6查看 3K关注 0票数 2

目前,我在从哈希映射中的值中提取单个字符串时遇到了一些问题。

目前,我有一个散列映射,设置如下:

代码语言:javascript
复制
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时,它呈现一个数组,如下所示:

代码语言:javascript
复制
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]

如何更改此打印行,使其值是一个只有字母的字符串?例如:

代码语言:javascript
复制
//FSYQNIDXBEHZCTJOWMVALKUPRG

希望这是明确的,但请告诉我,如果有更多的信息,我可以提供,以帮助回答这个问题。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2016-02-15 02:05:38

如果您使用的是Java 8,那么您可以使用减缩来完成所追求的任务,String标识是空字符串""

注意,由于您有一个Character的集合,所以必须有一个中间步骤才能首先将它们转换为String

代码语言:javascript
复制
String reduced = keyMapping.values()
                           .stream()
                           .map(Object::toString)
                           .reduce("", String::concat);

然后,您可以打印出reduced,它将是您所期望的字符串。

票数 3
EN

Stack Overflow用户

发布于 2016-02-15 02:05:02

您只需先获得值的字符串,然后将所有非字母替换为"“即可。

代码语言:javascript
复制
Map<Character, Character> keyMapping = new HashMap<Character, Character>();
keyMapping.put('a', 'c');
keyMapping.put('b', 'c');
keyMapping.put('c', 'c');
keyMapping.put('d', 'c');
keyMapping.put('e', 'c');

String result = keyMapping.values().toString().replaceAll("[^\p{Alpha}]", "");

结果:

代码语言:javascript
复制
result = ccccc
票数 1
EN

Stack Overflow用户

发布于 2016-02-15 02:24:30

我使用地图entrySet

代码语言:javascript
复制
public class MapToString {
     public static String valueToString(Map<Character,Character> map) {
           StringBuilder stringBuilder = new StringBuilder();
           for (Map.Entry<Character,Character> entry:map.entrySet()) {
               stringBuilder.append(entry.getValue());
           }
           return stringBuilder.toString();
     }
     public static void main(String[] args) {
           Map<Character,Character> res = new HashMap<>();
           res.put('A','A');
           res.put('B','B');
           System.out.println(valueToString(res));
     }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35400362

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档