java - 从一副扑克牌中返回一个流
问题描述
我们考虑以下格式的一副扑克牌:
等级:2、3、4、5、6、7、8、9、T、J、Q、K、A
花色:S - 黑桃,D - 钻石,H - 红心,C - 梅花
每张牌将由 2 个字符标识,例如“3S”(黑桃 3)、“TC”(梅花 10)、“AH”(红心 A)。我想修改该getCardsBySuit
方法以返回 aStream
以及属于该套装的所有卡片。
例如,对于包含“2H”、“3S”、“TH”且花色为“H”的列表,结果应该是包含“2H”和“TH”的流
public static Stream<String> getCardsBySuit(List<String> cards, char suit) {
return null;
}
解决方案
假设卡片中的所有元素至少有 2 个字符并且花色位于第二位。
return cards.stream()
.filter(s -> s.charAt(1) == suit);
请注意,在使用返回的流时,一旦您应用了任何终端操作,您将无法再次使用相同的流对象。您将不得不再次调用此方法。
推荐阅读
- excel - Using SUM function in cell formula yields #NAME error
- powershell - powershell query - how many OR can i use?
- javascript - 图表js onclick函数调用
- python - django 中的异常:查询集没有属性用户
- c# - 将对象列表绑定到 WPF listviewitem
- reactjs - TypeError:未定义不是一个对象(评估'state.routes.find')
- android-studio - 无法在我的自动完成文本视图中显示条码扫描文本
- python - 如何正确安装geopandas?
- reactjs - 如何在反应中添加 n 封电子邮件?
- chatbot - MS Teams - Bot 中的深层链接删除了聊天选项卡