java - 开关盒卡类

标签 java switch-statement

主类:

public class Card
{
private String cardShort;
private String cardClas;
private String cardType;
public Card(String cardClas, String cardType)
{
    this.cardType = cardType;
    this.cardClas = cardClas;
}
public void cardSelector()
{
    switch(cardClas.toUpperCase())
    {
            case "J" : cardClas = "Jack";
                  break;
            case "K" : cardClas = "King";
                  break;
            case "Q" : cardClas = "Queen";
                  break;
            case "A" : cardClas = "Ace";
                  break; 
            case "2" : cardClas = "Two";
                  break;
            case "3" : cardClas = "Three";
                  break;
            case "4" : cardClas = "Four";
                  break;
            case "5" : cardClas = "Five";
                  break;
            case "6" : cardClas = "Six";
                  break; 
            case "7" : cardClas = "Seven";
                  break; 
            case "8" : cardClas = "Eight";
                  break;
            case "9" : cardClas = "Nine";
                  break; 
            case "10" : cardClas = "Ten";
                  break;                       
    }
    switch(cardType.toUpperCase())
    {
        case "S" : cardClas = "Spades";
                  break; 
        case "C" : cardClas = "Clubs";
                  break;
        case "H" : cardClas = "Hearts";
                  break; 
        case "D" : cardClas = "Diamonds";
                  break;                
    }
}
public String getClasses()
{
    return cardType;
}
public String getType()
{
    return cardClas;
}
public String toString()
{
    String theory = getClasses() + " of " + getType();
    return theory;
}

}

测试人员:

import java.util.Scanner;
public class CardTester
{
public static void main(String[] args)
{
    Scanner sc = new Scanner(System.in);
    System.out.println("Enter card: ");
    String shortHand = sc.next();

    if(shortHand.length() == 2)
    {
        Card c = new Card(shortHand.substring(0,1),shortHand.substring(1,2) );
        c.cardSelector();
        System.out.println(c.toString());
    } else if(shortHand.length() == 3)
    {
        Card c = new Card(shortHand.substring(0,2), shortHand.substring(2,3));
        c.cardSelector();
        System.out.println(c.toString());
    }
}

}

控制台: “输入卡: 作为 黑桃 S ” 应该输出“黑桃A”。尝试了一系列不同的修复,但不确定现在是什么导致了问题。

第一次使用 switch case,需要一些帮助...谢谢!

最佳答案

两个 switch 语句都在设置 cardClas。您需要其中之一来设置 cardType

另外,你的两个 setter/getter 非常令人困惑。你们似乎不知何故交换了名字;因此,您有 getClasses 返回 cardTypegetType 返回 cardClas。您可能想要解决这个问题。

关于java - 开关盒卡类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26579411/

相关文章:

C:使用 do while 循环写入/读取文件

java - 对于类 : Set Overview and Description to my classes

java - 如何测试任何方法调用是否抛出异常?

swift - 一个 collectionView 中的不同类型的单元格

java - 如何将下面的 java 查询放入 switch case 中?

java - 返回带有 switch 大小写的字符串

java - JVM - WeakReferences 是否在次要 GC 中收集?

java - 计算 ArrayList 中不同对象类型的数量

java - 在 JdbcTemplate 中处理列空值

c# - 如何使用数组值进行大小写切换(不是数组编号)