将选定的Set String值移到另一个Set String

时间:2015-09-28 11:37:24

标签: java hashmap set

我的程序要求用户输入值和类型。我的问题是如果我的类型是Heart,它应该输出一组心。如果我的类型是Spade,它应该输出一组钻石。等等...

  

我的节目的逻辑:
  值和类型将使用concat语句合并   如果它不重复,则连接的值和类型(valtyp)将被置于Set newCard
  价值:A
  类型:心脏

     

价值:J
  类型:锹

     

价值:2
  类型:心脏

     

价值:Q
  类型:锹

     

newCard [AHeart,2Heart,JSpade,QSpade]
  这应该放在Heart Set中,另一个应该是Spade set
  心脏:[AHeart,2Heart]
  Spade:[JSpade,QSpade]

这是我的程序

import java.util.*;

public class DeckOfCards {

    static DeckOfCards kerds = new DeckOfCards();
    Map<String, String> card = new HashMap();
    Set<String> newCard = new LinkedHashSet();
    Set<String> heart = new LinkedHashSet();
    Set<String> diamond = new LinkedHashSet();
    Set<String> spade = new LinkedHashSet();
    Set<String> clover = new LinkedHashSet();

    public DeckOfCards() {
        //Heart
        card.put("AHeart", "Ace of Heart");
        card.put("JHeart", "Jack of Heart");
        card.put("QHeart", "Queen of Heart");
        card.put("KHeart", "King of Heart");
        card.put("2Heart", "2 of Heart");
        card.put("3Heart", "3 of Heart");
        card.put("4Heart", "4 of Heart");
        card.put("5Heart", "5 of Heart");
        card.put("6Heart", "6 of Heart");
        card.put("7Heart", "7 of Heart");
        card.put("8Heart", "8 of Heart");
        card.put("9Heart", "9 of Heart");
        card.put("10Heart", "10 of Heart");
        //Diamond
        card.put("ADiamond", "Ace of Diamond");
        card.put("JDiamond", "Jack of Diamond");
        card.put("QDiamond", "Queen of Diamond");
        card.put("KDiamond", "King of Diamond");
        card.put("2Diamond", "2 of Diamond");
        card.put("3Diamond", "3 of Diamond");
        card.put("4Diamond", "4 of Diamond");
        card.put("5Diamond", "5 of Diamond");
        card.put("6Diamond", "6 of Diamond");
        card.put("7Diamond", "7 of Diamond");
        card.put("8Diamond", "8 of Diamond");
        card.put("9Diamond", "9 of Diamond");
        card.put("10Diamond", "10 of Diamond");
        //Spade
        card.put("ASpade", "Ace of Spade");
        card.put("JSpade", "Jack of Spade");
        card.put("QSpade", "Queen of Spade");
        card.put("KSpade", "King of Spade");
        card.put("2Spade", "2 of Spade");
        card.put("3Spade", "3 of Spade");
        card.put("4Spade", "4 of Spade");
        card.put("5Spade", "5 of Spade");
        card.put("6Spade", "6 of Spade");
        card.put("7Spade", "7 of Spade");
        card.put("8Spade", "8 of Spade");
        card.put("9Spade", "9 of Spade");
        card.put("10Spade", "10 of Spade");
        //Clover
        card.put("AClover", "Ace of Clover");
        card.put("JClover", "Jack of Clover");
        card.put("QClover", "Queen of Clover");
        card.put("KClover", "King of Clover");
        card.put("2Clover", "2 of Clover");
        card.put("3Clover", "3 of Clover");
        card.put("4Clover", "4 of Clover");
        card.put("5Clover", "5 of Clover");
        card.put("6Clover", "6 of Clover");
        card.put("7Clover", "7 of Clover");
        card.put("8Clover", "8 of Clover");
        card.put("9Clover", "9 of Clover");
        card.put("10Clover", "10 of Clover");
    }

    public static void main(String args[]) {
        while (true) {
            try {
                Scanner input = new Scanner(System.in);
                int option;
                String val;
                String typ;
                String valtyp;
                String valtyp2;
                System.out.println("Deck of Cards");
                System.out.println("[1]Add");
                System.out.println("[2]Delete");
                System.out.println("[3]Display");
                System.out.println("[4]Search");
                System.out.println("[5]Count");
                System.out.println("[6]Exit");
                System.out.print("Option: ");
                option = input.nextInt();

                switch (option) {
                    case 1:
                        System.out.println("\nCardInfo\n");
                        try {
                            System.out.print("Value: ");
                            val = input.next();
                            if (val.equals("A") || val.equals("J") || val.equals("Q") || val.equals("K") || val.equals("2") || val.equals("3") || val.equals("4") || val.equals("5") || val.equals("6") && val.equals("7") || val.equals("8") || val.equals("9") || val.equals("10")) {
                                try {
                                    System.out.print("Type: ");
                                    typ = input.next();
                                    if (typ.equals("Heart") || typ.equals("Diamond") || typ.equals("Spade") || typ.equals("Clover")) {
                                        valtyp = val.concat(typ);
                                        try {
                                            boolean nonDuplicate = kerds.newCard.add(valtyp);
                                            if (!nonDuplicate) {
                                                throw new DuplicateCardException();
                                            } else {
                                                System.out.print(kerds.card.get(valtyp));
                                                System.out.println(" is successfully added.\n");
                                                //if(typ.equals("Heart")){    This is the part on what i dont know what to do. It should output a list of hearts.
                                                //kerds.newCard.retainAll(kerds.heart);
                                                //System.out.println(kerds.newCard);
                                                // }
                                            }
                                        } catch (DuplicateCardException e) {
                                            System.out.println(e.getMessage() + "\n");
                                        }
                                    } else {
                                        throw new InvalidValueException();
                                    }
                                } catch (InvalidValueException e) {
                                    System.out.println(e.getMessage() + " Heart, Diamond, Spade, Clover.\n");
                                }
                            } else {
                                throw new InvalidValueException();
                            }
                        } catch (InvalidValueException e) {
                            System.out.println(e.getMessage() + " 2-10, AJQK.\n");
                        }
                        break;
                    case 2:
                    case 3:
                    case 4:
                    case 5:
                    case 6:
                    default:
                }
            } catch (InputMismatchException e) {
                System.out.println("Invalid Option! Please try again.\n");
            }
        }
    }
}

0 个答案:

没有答案