在Java中使用Lambda和Streams来查找两个单词是否为字谜,可以按照以下步骤进行:
下面是一个示例代码:
import java.util.Arrays;
import java.util.List;
public class AnagramChecker {
public static void main(String[] args) {
String word1 = "listen";
String word2 = "silent";
List<String> anagrams = Arrays.asList("listen", "silent", "enlist", "inlets", "tinsel");
boolean isAnagram = anagrams.stream()
.filter(anagram -> anagram.length() == word1.length())
.anyMatch(anagram -> {
char[] sortedAnagram = anagram.toLowerCase().toCharArray();
char[] sortedWord = word2.toLowerCase().toCharArray();
Arrays.sort(sortedAnagram);
Arrays.sort(sortedWord);
return Arrays.equals(sortedAnagram, sortedWord);
});
if (isAnagram) {
System.out.println(word1 + " and " + word2 + " are anagrams.");
} else {
System.out.println(word1 + " and " + word2 + " are not anagrams.");
}
}
}
这段代码首先创建了一个包含所有可能字谜的列表anagrams。然后使用Streams的filter操作,筛选出长度与第一个单词相同的字谜。接着使用Streams的anyMatch操作,判断第二个单词是否在筛选后的字谜列表中。最后根据判断结果输出相应的信息。
这个方法的优势是使用了Lambda和Streams,使代码更加简洁和易读。它可以快速查找两个单词是否为字谜,并且可以方便地扩展到更多的字谜列表。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云