我的程序要求用户输入值和类型。我的问题是如果我的类型是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");
}
}
}
}