尝试创建一个代码,打印出面值和随机拉出的5张卡片的套装。由于某种原因,它只打印出方法的输入,但不打印方法的结果。有人可以告诉我哪里出错吗?谢谢!为结果我得到输出:
3 of 1
2/5
2/6
0 of 11
3 of 12
import java.util.*;
public class Card {
static int suits = 0;
static int values = 0;
static String c, d,e,f;
public String getSuit()
{
if (c == "0")
e = ("Hearts");
else
if (c == "1")
e = "Spades";
else
if (c == "2")
e = "Clubs";
else
if (c == "3")
e = "Diamonds";
else
e=c;
return e;
}
public String getValue() {
if (d == "0")
f = ("Ace");
else
if (d =="11")
f = ("Jack");
else
if (d == "12")
f = ("Queen");
else
if (d == "13")
f = ("King");
else
f =d;
return f;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Random gen = new Random();
int [] suits = new int[4];
{
for (int index=0;index<suits.length; index++)
suits[index] = index;
}
int [] values = new int[14];
{
for (int j = 0; j<values.length;j++)
values[j]= j;
}
for (int g = 0; g<5; g++)
{
int a = gen.nextInt(suits.length);
int b = gen.nextInt(values.length);
c = Integer.toString(a);
d = Integer.toString(b);
//System.out.println(c);
//System.out.println(d);
Card draw = new Card ();
draw.getSuit();
draw.getValue();
System.out.println(e + " of "+f);
}
}
答案 0 :(得分:1)
.equals
所有都是字符串,在Java中你必须使用 if (c.equals("0"))
e = ("Hearts");
else
if (c.equals"1"))
e = "Spades";
来比较字符串。
因此,
==
并在代码中的任何位置将.equals
更改为(X.Transpose() * X).Inverse() * (X.Transpose() * y)
。
让我们知道更多帮助!
答案 1 :(得分:0)
您不能使用==运算符按照您的意图比较字符串。在对象上使用==时,它不是要比较的值,而是引用。也就是说,每个变量都指向内存中的同一个对象。
相反,您应该使用String.equals()
方法。