在java中使用switch-case方法确定新结果后,如何将两个字符串变量合并成一个结果字符串?
这是另一个人问题的链接,也是我的任务 如何让结果字符串以这种格式显示valueofCard,然后显示SuiteOfCard“value of suit” 此外,如何在开关盒内缩短2-10值范围? 我知道我有“of”和其他几行没有意义,我只是觉得我错过了一些重要的东西。 谢谢你的帮助,有很多事情要做在java中使用switch-case方法确定新结果后,如何将两个字符串变量合并成一个结果字符串?,java,Java,这是另一个人问题的链接,也是我的任务 如何让结果字符串以这种格式显示valueofCard,然后显示SuiteOfCard“value of suit” 此外,如何在开关盒内缩短2-10值范围? 我知道我有“of”和其他几行没有意义,我只是觉得我错过了一些重要的东西。 谢谢你的帮助,有很多事情要做 System.out.print("Please enter a letter/integer of a playing card (A, J, Q, K, or 2 - 10),\nfollowe
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 选项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 我已经更新了我的代码,以便您在我的原始问题中查看。你知道为什么最后一行是System.out.println(result.toString());是无法访问的代码吗?你知道有什么干净的方法可以把我的案例“2”-案例“10”总结成一个案例陈述,读回其中一个值(如果找到的话),我已经更新了我的代码,让你在我的原始问题中回顾。你知道为什么最后一行是System.out.println(result.toString());是无法访问的代码吗?你知道有什么干净的方法可以把我的案例“2”-案例“10”总结成一个案例语句,它可以读回你的系统中的一个值(如果找到)。out.println语句在“switch(suiteofcard)”语句的括号内。谢谢!!!另外,你能帮助我理解为什么当我输入“AH”时,代码会打印“AHAce of Hearts”或者为什么我的卡号值(卡号“2”-“10”)没有返回任何内容吗?看看“result”是如何初始化的,并在“switch(valueofCard)”中比较所附加的内容与a、J、Q的比较,K:)谢谢你!!!我唯一剩下的问题是,当我输入10小时或10秒时,它不会向屏幕读取任何内容?我相信这是因为行字符串valueofCard=userInput.substring(0,userInput.length()/2);字符串suiteofcard=userInput.substring(userInput.length()/2);您的System.out.println语句位于“switch(suiteofcard)”语句的括号内。谢谢!!!另外,你能帮助我理解为什么当我输入“AH”时,代码会打印“AHAce of Hearts”或者为什么我的卡号值(卡号“2”-“10”)没有返回任何内容吗?看看“result”是如何初始化的,并在“switch(valueofCard)”中比较所附加的内容与a、J、Q的比较,K:)谢谢你!!!我唯一剩下的问题是,当我输入10小时或10秒时,它不会向屏幕读取任何内容?我相信这是因为行字符串valueofCard=userInput.substring(0,userInput.length()/2);字符串suiteofcard=userInput.substring(userInput.length()/2);