【问题标题】:Convert delimited String to delimited Long as per String to Long mapping根据字符串到长的映射将分隔的字符串转换为分隔的长
【发布时间】:2016-08-03 18:05:03
【问题描述】:

我有一个字符串:

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 中执行此操作。是否有更好的方法来解决此问题。谢谢!

【问题讨论】:

  • 您在哪一部分遇到了问题?
  • 要求“最佳方法”将基于意见。此外,你用什么方式来做这么简单的事情并不重要。
  • 更新了我的问题。我的错,只是在那里耽搁了。

标签: java string java-8 csv


【解决方案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());

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-19
    • 2017-05-05
    • 1970-01-01
    • 1970-01-01
    • 2019-05-17
    • 2019-08-23
    • 2023-03-11
    • 1970-01-01
    相关资源
    最近更新 更多