gpt4 book ai didi

java - 我是构造函数新手,我如何为字符串传递 int ?

转载 作者:行者123 更新时间:2023-12-02 04:51:27 25 4
gpt4 key购买 nike

一切都很顺利,直到我意识到我需要为我的 Card 类合并一个测试用例。我看过一些与此类似的帖子,但没有给我提供继续所需的提示。我被困住了:(

并且在描述中没有任何地方提到数组,所以我不相信我可以采取简单的方法摆脱这个。

这里是分配的描述:创建四个代表花色的常量,其值如下:梅花 0、方 block 1、红心 2 和黑桃 3。

创建两个名为ranks 和suits 的常量,toString 方法将使用它们将卡片转换为字符串。使用初始值设定项列表创建一个名为ranks 的常量,用于保存纸牌的等级:Ace、Two、Three、...King。使用初始值设定项创建第二个名为 suites 的常量,其中包含花色的名称:梅花、方 block 、红心、黑桃。

在下面的代码块中,twoOfClubs 传递一个 1 和一个 0。1 代表排名,0 代表花色?

所以 1 是两个,0 是俱乐部,我明白了,但是我如何改变我的构造函数,以便它知道 1 是等级 2,0 是等​​级俱乐部?

int testNum = 1;
Card twoOfClubs = new Card(1, 0);
System.out.println(testNum + ": " +
(twoOfClubs.toString().equals("Two of Clubs -- points: 0")
? "Pass" : "Fail"));

此代码将出现在 CardTest 中

现在我的 Card 类可以在这里找到,

public class Card
{

private final int CLUBS = 0;
private final int DIAMONDS = 1;
private final int HEARTS = 2;
private final int SPADES = 3;

private int points = 0;

private String RANK;
private String SUIT;



/**
* Constructor for objects of class Card
*/
public Card(String _rank, String _suit)
{
this.RANK = _rank;
this.SUIT = _suit;

}


public void setRank(String _rank)
{
this.RANK = _rank;
}

public String getRank()
{
return this.RANK;
}

public void setSuit(String _suit)
{
this.SUIT = _suit;
}

public String getSuit()
{
return this.SUIT;
}

public String toString()
{
return this.RANK + " of " + this.SUIT + " -- points: " + this.points;
}
}

顶部列出的代码显然不会编译,因为我向它传递了两个 int,而不是它要求的两个字符串..

编辑1:

我的新translateSuit 方法说它缺少返回语句?

private String translateSuit(int _suit)
{
switch(_suit)
{
case 0:
return "Clubs";
case 1:
return "Spades";
case 2:
return "Hearts";
case 3:
return "Diamonds";
default:
System.out.println("Invalid Suit");
}
}

最佳答案

这里的关键是数字代表实际的单词,而不是您传递它们。

因此,1 代表值 2,0 代表花色“Club”。

不要传入String,只传入int

在您的 toString 方法中是必须进行转换的地方。以下是如何确定花色和等级的片段 - 我将其分为两个单独的方法,以便您可以更清楚地看到它的用法。

private String translateSuit(int suit) {
switch(suit) {
case 0:
return "Clubs";
case 1:
return "Spades";
case 2:
return "Hearts";
case 3:
return "Diamonds";
}
// All conditions exhausted, no sense in continuing:
throw new IllegalArgumentException("invalid suit: " + suit);
}

private String translateRank(int card) {
switch(card):
case 1:
return "Two";
// fill in the rest here
}
}

public String toString() {
return translateRank(SUIT) + " of " + translateSuit(RANK)
+ " -- points: " + points;
}

关于java - 我是构造函数新手,我如何为字符串传递 int ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29197769/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com