java - 两次检查一个字符串是否包含另一个字符串

标签 java string list

我有一个遍历映射列表的for循环,现在我想检查映射列表的每个条目是否多次包含某个字符串,然后删除除第一个出现的字符串之外的所有字符串,但我不知道如何去做。

for (Map<String, String> entry : mapList) {
    String line = "";
    for (String key : entry.keySet()) {
        if (StringUtils.containsAny(key, "5799"){
            line += entry.get(key) + "|";
        }
        list1.add(line);
    }
}

我感谢每一个想法。

最佳答案

根据您的评论,我假设您的要求如下:

  • 您的字符串包含多个由竖线字符 | 分隔的部分,例如“a|e|b|c|a|c|a|d”
  • 您想删除所有重复的字符串,同时保留元素的顺序,例如你想要 "a|e|b|c|d"

要实现这一点,您可以在管道处拆分字符串,将元素收集到 LinkedHashSet 中,然后使用管道重新加入元素。

使用 Java 8 的示例:

//The pipe needs to be escaped because split() interprets the input as a regex
Set<String> elements = new LinkedHashSet<>( Arrays.asList( input.split( "\\|" ) ) );
//rejoin using the pipe
String output = elements.stream().collect( Collectors.joining( "|" ) );

关于java - 两次检查一个字符串是否包含另一个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57304859/

相关文章:

java - 无需外部工具即可在 java 中记录 HTTP 通信

java - 无法实例化类 : com. ibm.Websphere.naming.WsnInitialContextFactory

java - 通用允许字符串对象作为整数

C# 按实现拆分接口(interface)列表

java - Osmdroid 奖金包 - MyLocationNewOverlay

java - Mapstruct:使用合格的 IterableMapping 映射列表属性

php - 逗号后加空格

c++ - 在 C++ 中将十六进制字符串转换为无符号字符

python - 将字符串列表提供给 sql 查询 [Python]

python - 配对嵌套列表中的元素