我有一个遍历映射列表的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/