输出忽略Java中的方法

时间:2017-09-22 05:46:54

标签: java

尝试创建一个代码,打印出面值和随机拉出的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);
        }
    }

2 个答案:

答案 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()方法。