我有一个字符串:
My name is amit
和映射:
My -> 1121
name -> 1122
is -> 1123
amit -> 1124
我想回来:
1121 1122 1123 1124
其中每个单词都映射到其对应的长值,该值保存在HashMap中。
这是我的版本:
public String delimtedStringToLong(String input, String delimiter, Map<String, Long> map) {
String[] arr = input.split(delimiter);
StringBuilder sb = new StringBuilder();
for (int i = 0; i < arr.length; i++) {
sb.append(String.valueOf(map.get(arr[i])) + delimiter);
}
return sb.toString();
}
我在Java 8中这样做。可以有更好的方法。谢谢!
答案 0 :(得分:1)
我将输入字符串拆分,通过映射函数对其进行流式处理,该函数从地图中获取值,然后将其收回:
String input = "My name is amit";
Map<String, Long> map = new HashMap<>();
map.put("My", 1121L);
map.put("name", 1122L);
map.put("is", 1123L);
map.put("amit", 1124L);
String output =
Arrays.stream(input.split(" "))
.map(s -> String.valueOf(map.get(s)))
.collect(Collectors.joining());