2016-08-03 56 views
1

我有一个字符串:转换分隔字符串分隔长按串地龙映射

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

您遇到什么故障部位与? – resueman

+0

要求“最佳方法”是基于意见的。除此之外,使用什么方式来完成像这样简单的事情并不重要。 – Kayaman

+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());