java - 根据字符串到长整型映射将定界字符串转换为定界长整型

标签 java string java-8 csv

我有一个字符串:

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

最佳答案

我会分割输入字符串,通过映射函数将其流式传输,该函数从映射中获取值,然后将其收集回来:

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

关于java - 根据字符串到长整型映射将定界字符串转换为定界长整型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38750747/

相关文章:

java - 各种小HashSet和1个大HashSet的搜索差异是什么?

javascript - 如何仅从整个字符串的开头删除括号中的字符串?

string - Java 8 流是否只是不打算与字符和字符串一起使用?

java - 如何将两个集合项目与项目组成?

java - Sentry:我需要使用Sentry.capture()吗?

java - 如何在ant上显示system.out(在控制台中)?

无法将参数1从 'char [20][20]'转换为 'char ** '?

java - 检测字符串是否为数字的最优雅方法?

java - 如何使用 jstat 获取非堆 "code cache"详细信息

java - 执行 HTTP.PUT 的正确方法