Word wheel: Difference between revisions

Content added Content deleted
m (Formatted text.)
m (Minor improvement to coding.)
Line 1,635: Line 1,635:
String middleLetter = allLetters.substring(4, 5);
String middleLetter = allLetters.substring(4, 5);
Predicate<String> correctWords = word -> {
Predicate<String> firstFilter = word -> word.contains(middleLetter) && 3 <= word.length() && word.length() <= 9;
if ( ! word.contains(middleLetter) || 3 > word.length() || word.length() > 9 ) {
Predicate<String> secondFilter = word -> word.chars().allMatch( ch -> allLetters.indexOf(ch) >= 0 );
Predicate<String> correctWords = firstFilter.and(secondFilter);
return false;
}
for ( String letter : allLetters.split("") ) {
word = word.replaceFirst(letter, "");
}
return word.isEmpty();
};
words.stream().filter(correctWords).forEach(System.out::println);
words.stream().filter(correctWords).forEach(System.out::println);