Java 如何将变量设置为int和String?
我正在制作一个卡片类,需要将正面(卡片上的数字)设置为数字1-13。然而,在一张牌上,1是王牌,13是国王,12是王后,11是杰克。如何将数字1和11-13设置为字符串,如ace、king、queen或jack?感谢您的帮助Java 如何将变量设置为int和String?,java,validation,set,Java,Validation,Set,我正在制作一个卡片类,需要将正面(卡片上的数字)设置为数字1-13。然而,在一张牌上,1是王牌,13是国王,12是王后,11是杰克。如何将数字1和11-13设置为字符串,如ace、king、queen或jack?感谢您的帮助 public void setFace(int f) { if(f >= 1 && f <= 13) face = f; else
public void setFace(int f)
{
if(f >= 1 && f <= 13)
face = f;
else
face = 1;
}
public int getFace()
{
return face;
}
public void setFace(int f)
{
如果(f>=1&&f您对该代码有何看法
public void setFace(int f) {
switch (f) {
case 1:
face = 1;
break;
case 11:
face = 1;
break;
case 12:
face = 1;
break;
case 13:
face = 1;
break;
default:
face = f;
break;
}
}
使用枚举如何
public enum CardValue {
ACE(1), TWO(2), THREE(3), ..... KING(13);
private int value;
private CardValue(int value) {
this.value = value;
}
public int getValue() {
return value;
}
public CardValue getValueFor(int x) {
// iterate through CardValue enum and return correct instance of the enum
}
}
我假设你有一个像这样的领域
public int face;
如果这是你的意思,我想它会起作用的
public String getFace() {
switch (this.face) {
case 1:
face = "Ace";
break;
case 11:
face = "Jack";
break;
case 12:
face = "Queen";
break;
case 13:
face = "King";
break;
default:
return Integer.toString(face);
break;
}
}
我认为这很难看而且容易出错:-)…既然你问了。你可以在switchenum中使用enum。enum最适合你的需要need@jigitter:您没有在枚举中提供任何构造函数,可以吗?我不知道这一点…如果您必须调用大多数枚举2、3、4等,对我来说,这表明这实际上是一个整数,是一个整数,而不是enum
,是一个装备ht抽象。但这是一个困难的案例,因为有脸牌,所以我希望其他人会有不同的意见。好的是你没有“魔术数字”,您不需要处理几十个常量,您可以将比较器和其他相关逻辑整齐地包装起来。这实际上只是从有效的Java手册中抽出一页。@jgitter:但您的枚举名是CardValue,而不是Card。@jgitter:我很乐意。