gpt4 book ai didi

java - 查找不相交的集合而不考虑字符串的大小写

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:05:23 25 4
gpt4 key购买 nike

我正在使用 Collection.disjoint找到两个字符串集合的不相交集 c1, c2. 但它不会忽略大小写,例如 - 字符串 strStr 不同.

return Collections.disjoint(c1, c2);

我能否在不使用 for 循环的情况下找到两个集合的不相交而忽略它们的大小写?

最佳答案

如果您绝对坚持不使用 for 循环,您总能找到两个小写 StringCollection 之间的不相交。使用 Google Guava ,它应该是这样的:

package ru.zombator.stackoverflow;

import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.Locale;

import com.google.common.base.Function;
import com.google.common.collect.Collections2;

public final class DisjointIgnoreCase {
public static void main(String[] args) {
Collection<String> coll1 = Arrays.asList("donald", "Duck");
Collection<String> coll2 = Arrays.asList("DONALd", "Donut");
Collection<String> coll3 = Arrays.asList("Homer", "DONUT");
Collection<String> coll4 = Arrays.asList("DONALD", "duck");

// will all print false
System.out.println(disjointIgnoreCase(coll1, coll2));
System.out.println(disjointIgnoreCase(coll2, coll3));
System.out.println(disjointIgnoreCase(coll1, coll4));

// will print true (no common elements)
System.out.println(disjointIgnoreCase(coll1, coll3));
}

private static boolean disjointIgnoreCase(Collection<String> coll1, Collection<String> coll2) {
return Collections.disjoint(lowercased(coll1), lowercased(coll2));
}

private static Collection<String> lowercased(Collection<String> coll) {
return Collections2.transform(coll, new Function<String, String>() {
@Override
public String apply(String input) {
return input.toLowerCase(Locale.US);
}
});
}
}

关于java - 查找不相交的集合而不考虑字符串的大小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22519104/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com