这里是另一个人的问题的链接,它是我的确切任务。
如何让结果字符串显示 valueofCard,然后以“西装值”格式显示suitofCard 另外,如何缩短 switch case 内的 2-10 值范围? 我知道我有“of”和其他几行没有意义,我只是想我无论如何都错过了一些大东西。 感谢您的帮助,还有很多工作要做。
System.out.print("Please enter a letter/integer of a playing card (A, J, Q, K, or 2 - 10),\nfollowed by card type (D, H, S, C):");
Scanner kbd = new Scanner(System.in);
String userInput = kbd.nextLine();
String valueofCard = userInput.substring(0, userInput.length() / 2); // gives first half of string
String suitofCard = userInput.substring(userInput.length() / 2); //give last half of string with + 1 if odd
StringBuilder result = new StringBuilder();
switch (valueofCard) {
case "A":
result.append("Ace of ");
break;
case "J":
result.append("Jack of ");
break;
case "Q":
result.append("Queen of ");
break;
case "K":
result.append("King of ");
break;
case "2":
result.append("2 of ");
case "3":
result.append("3 of ");
case "4":
result.append("4 of ");
case "5":
result.append("5 of ");
case "6":
result.append("6 of ");
case "7":
result.append("7 of ");
case "8":
result.append("8 of ");
case "9":
result.append("9 of ");
case "10":
result.append("10 of ");
break;
}
switch (suitofCard) {
case "D":
result.append("Diamonds");
break;
case "H":
result.append("Hearts");
break;
case "S":
result.append("Spades");
break;
case "C":
result.append("Clubs");
break;
}
System.out.println(result.toString());
kbd.close();
}
}
最佳答案
选项 1 - 您可以使用 Stringbuilder 来执行此操作。
StringBuilder cardAndSuit = new StringBuilder();
switch (valueofCard) {
case "A":
cardAndSuit.append("Ace of");
.....
switch (suitofCard) {
case "D":
cardAndSuit.append("Diamonds");
break;
...
// Print the final string
System.out.println(cardAndSuit.toString()); // Ace of Diamonds
选项 2 - 您也可以创建一个常规字符串并附加到它。
String cardAndSuit = '';
cardAndSuit += "Ace of";
cardAndSuit += " Diamonds";
System.out.println(cardAndSuit); // Ace of Diamonds
2 可能更简单、更简洁。选项 2 实际上会被编译器在幕后转化为选项 1。
关于java - 在使用 switch case 方法确定 java 中的新结果后,如何将两个字符串变量连接成结果字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39862847/