java - 从字符串数组索引中取数字,将它们相乘?
问题描述
因此,在这种情况下,我有一个包含多张卡片的数组。这些卡在每个索引中的排名分别为 S1R1、S1R2、S1R3、S2R1、S2R2、S2R3。我需要能够从每个索引位置提取两个数字并将它们相乘并最终将它们相加。
For example,
position 0 would be 1 * 1 = 1
position 1 would be 1 * 2 = 2
position 2 would be 1 * 3 = 3
etc. etc.
此示例的代码会根据用户输入进行更改,因此很难为您提供可以使用的代码。
public void createDeckofCards() {
SizeOfDeck = NumberOfRanks * NumberOfSuits;
Cards newCard = new Cards();
newCard.setCards ( NumberOfRanks, NumberOfSuits );
newDeck = new String [ SizeOfDeck ];
int counter = 0;
for (int whatSuit = 1; whatSuit <= NumberOfSuits; whatSuit++) {
for (int rank = 1; rank <= NumberOfRanks; rank++) {
newDeck[counter++] = newCard.createCard(rank, whatSuit);
}
}
}
这就是调用方法 createCard() 的原因,该方法根据用户输入的卡片数量创建每张卡片。所以 newDeck[] 包含我需要分解成数字并最终总结的所有这些卡片。(制作 100,000 手牌的直方图)
感谢您的宝贵时间,我感谢您的任何意见
解决方案
使您的卡片成为Card
具有花色和等级属性的对象(也许)。给它返回方法:
- 符号形式(
toString
是一个逻辑选择):return "S" + suit + "R" + rank;
- 值形式 (
getValue()
):return suit * rank;
有了它,您可以创建一个数组Card
而不是一个数组String
。
如果您需要将符号表示(“S1R7”、“S3R9”)转换为物理对象的能力,请创建一个Map<String, Card>
. 您可以使用map.put(card.toString(), card);
.
要查找您只需要的卡Card card = map.get("S1R2");
然后该值可用作card.getValue()
推荐阅读
- android - 如何使用 LineageOS 代码库作为起点构建 Android-x86?
- python - virtualenv python中的sys.path
- neo4j - SpringData Neo4J 事务提交问题
- c# - Linq to Lambda 表达式 c#
- lottie - 乐天动画播放太快
- c - C - 数组中的结构(以及一大堆其他问题)
- json - 在 Scala 中使用 from_json() 解析 DataFrame 中的多行
- python-3.x - 使用beautifulsoup查询多页抓取
- c# - macOS 上的 Docker 时间漂移
- c# - ASP.NET MVC 4:部署项目后出现 URL 问题。(IIS 7)