java - 在使用 switch case 方法确定 java 中的新结果后,如何将两个字符串变量连接成结果字符串?

标签 java

这里是另一个人的问题的链接,它是我的确切任务。

https://stackoverflow.com/questions/39834840/concatenating-switch-statements-for-playing-cards-assignment

如何让结果字符串显示 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/

相关文章:

java - fragment 中的自定义 GridView 适配器

java - 如何使用包含依赖项子集的 Maven 生成可执行 jar?

java - 如何返回第二个值

java - 是否可以在 java 中创建我自己的原始数据类型。像 int、float、double

java - JSP - 标签属性的值

java - 在定义行之外实现 Comparator 的比较方法

java - 同步Gradle时遇到Android Studio问题

java - 使用 JDBC 获取与 MySQL 的连接时为 "Too many Connections"

java - 如何从 Maven 项目制作 jar

当对象包含 'init' 时,Java 反射初始化 Kotlin 对象失败