3 回答

TA貢獻1836條經驗 獲得超13個贊
拉布是對的!但是為了正確的行為,我更新了一點:
incoming.stream()
.filter(dict::contains)
.forEach(spelledCorrectly::add);
incoming.stream()
.filter(e -> !e.isEmpty() && !dict.contains(e.toLowerCase()))
.forEach(misspelled::add);

TA貢獻1815條經驗 獲得超13個贊
您可以先清理您的單詞并過濾掉空的單詞,然后將它們收集到一個分區:
Map<Boolean, List<String>> result = incoming.stream()
.map(String::trim)
.map(String::toLowerCase)
.filter(s -> !s.isEmpty())
.collect(Collectors.partitioningBy(dict::contains));

TA貢獻1833條經驗 獲得超4個贊
雖然我認為 ernest(看起來他/她刪除了答案)曾經是一個很好的答案,但我決定將您的循環轉換為流,
incoming.stream()
.filter(dict::contains)
.forEach(spelledCorrectly::add);
incoming.stream()
.filter(e -> !e.isEmpty())
.forEach(misspelled::add);
這應該和你在 for 循環中做的事情一樣
添加回答
舉報