首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >交换机机箱卡类

交换机机箱卡类
EN

Stack Overflow用户
提问于 2014-10-27 08:00:12
回答 2查看 393关注 0票数 0

主类:

代码语言:javascript
复制
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;
}

}

测试仪:

代码语言:javascript
复制
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());
    }
}

}

控制台:"Enter card: AS S of Spades“应该输出"Ace of Spades”。尝试了一堆不同的修复,不确定是什么导致了现在的问题。

第一次使用开关箱,可能需要一些帮助…谢谢!

EN

回答 2

Stack Overflow用户

发布于 2014-10-27 08:05:14

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

另外,你的两个getter非常容易混淆。您似乎以某种方式交换了名称;因此您有返回cardTypegetClasses和返回cardClasgetType。你可能想解决这个问题。

票数 2
EN

Stack Overflow用户

发布于 2014-10-27 08:06:48

首先,我希望您使用的是Java7,如果不是这样(或者您只是想简化它),那么您可以在switch语句中使用char而不是String。同时,在两个switch语句中都设置了cardClas。此外,getClasses方法返回cardType,getCardType返回cardClas

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26579411

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档