java |如何从字符串中删除常用词然后连接不常用词?

标签 java string collections

我在一轮面试中被问到你有两个段落

P1 = I am Lalit
P2 = Lalit Kumar

现在找到常见的单词,而不是字符,然后只打印不常见的。

Ex: I am Kumar

解决这个问题的最佳方法是什么?

最佳答案

这可能有点矫枉过正,但我​​会拆分两个字符串,将它们收集到一个 LinkedHashMap(以保留原始顺序)并计算每个字符串出现的次数,然后过滤掉非唯一条目:

String p1 = "I am Lalit";
String p2 = "Lalit Kumar";

String result =
    Stream.concat(Arrays.stream(p1.split("\\s")), Arrays.stream(p2.split("\\s")))
          .collect(Collectors.groupingBy(Function.identity(), 
                                         LinkedHashMap::new,
                                         Collectors.counting()))
          .entrySet()
          .stream()
          .filter(e -> e.getValue() == 1)
          .map(Map.Entry::getKey)
          .collect(Collectors.joining(" "));

关于 java |如何从字符串中删除常用词然后连接不常用词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51238453/

相关文章:

java - 克隆如何比对象创建具有更高的性能

python - 从 Python 中的函数调用中提取变量

java - 使用 PC 远程读取 JSP 页面上的文件时出错

java - 单个字符串中的多个字符串替换生成所有可能的组合

c# - 如何在泛型集合中转换对象?

scala - 如何制作 ArrayBuffer 的 ArrayBuffer

java - 将原始集合转换为通用集合的现成解决方案

java - 自定义 ListView setOnItemClickListener 不起作用

java - 当 CellSignalStrength 类没有构造函数时,如何扩展它?

java - 实现静态方法 - 需要帮助